Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (90 KB, 2 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>SỞ GD & ĐT NGHỆ AN</b> <b>ĐỀ THI CHỌN HỌC SINH GIỎI TỈNH LỚP 11</b>
<b>NĂM HỌC 2013-2014</b>
<i>(Đề gồm 2 trang)</i>
Môn thi: <b>TIN HỌC – THPT BẢNG A</b>
Thời gian: <b>150 phút</b> (<i>không kể thời gian giao đề)</i>
<b>Bài</b> <b>Tên file nguồn</b> <b>File Input</b> <b>File Outout</b> <b>Thời gian<sub>chạy</sub></b> <b>Điểm</b>
Bài 1 THANHGO.PAS THANHGO.INP THANHGO.OUT 1 giây 5
Bài 2 MIN.PAS MIN.INP MIN,OUT 1 giây 6
Bài 3 SDD.PAS SDD.INP SDD.OUT 1 giây 5
Baì 4 SUBARR.PAS SUBARR.INP SUBARR.OUT 1 giây 4
<b>Bài 1. (5 điểm)</b>
<b>THANH GỖ</b>
Cha của Pinocchio muốn làm lại cho Picochio một cái mũi mới. Ơng có N thanh gỗ,
thanh gỗ i có độ dài ai. Là người u thích tốn học ông ta đưa ra một giải thuật sau để
lấy ra thanh gỗ có độ dài cần thiết:
- Nếu cịn lại 1 thanh gỗ thì ơng ta sẽ lấy thanh gỗ này làm mũi cho Pinocchio.
- Nếu còn nhiều hơn một thanh gỗ thì ơng ta sẽ làm như sau:
Bước 1: Chọn ra thanh gỗ i có độ dài ai nhỏ nhất, tiếp theo chọn thanh gỗ j có độ
dài aj nhỏ nhất trong các thanh còn lại.
Bước 2: Nếu ai = aj thì vứt bỏ bớt một thanh, quay về Bước 1.
Bước 3: Nếu ai < aj thì ra sẽ cắt khỏi thanh aj đi một đoạn bằng ai, quay lại Bước 1.
<b>Yêu cầu:</b> Hãy tính độ dài thanh gỗ mà ông ta nhận được để làm mũi cho Pinocchio.
Giới hạn: 1<=N <=10.000; 1<=ai<=109.
<b>Dữ liệu:</b> Vào từ file văn bản <b>THANHGO.INP</b>: Dòng đầu tiên là số N, dòng sau là
N số a1, a2, …., an.
<b>Kết quả:</b> Ghi ra file văn bản <b>THANHGO</b>.<b>OUT:</b> Số X là độ dài thanh gỗ tìm được.
(Các số trên cùng một dịng của file dữ liệu vào cách nhau ít nhất một ký tự trống)
Ví dụ
<b>THANHGO.INP</b> <b>THANHGO.OUT</b>
3
2 3 4
1
<b>Bài 2. (6 điểm)</b>
<b>SỐ NHỎ NHẤT</b>
Cho một số nguyên dương K và một xâu ký tự S. Xâu S chỉ gồm các ký tự là các chữ
cái la tinh thường ‘a’… ‘z’ và các chữ số ‘0’… ‘9’, trong đó có ít nhất K ký tự là chữ số.
Bạn hãy viết một chương gtrình loại bỏ một số ký tự ra khỏi xâu S sao cho K ký tự cịn
lại theo đúng thứ tự đó tạo nên số nhỏ nhất. Trong K ký tự còn lại có thể cho phép các
chữ số 0 đứng đầu.
<b>Dữ liệu vào:</b> Vào từ file văn bản <b>MIN.INP</b>: Dòng thứ nhất là số nguyên dương K
(K<=10). Dòng thứ hai ghi xâu S có độ dài nhỏ hơn 250.
<b>Kết quả:</b> Ghi ra file văn bản <b>MIN.OUT</b>: Gồm một dòng ghi ra K ký tự còn lại tạo
nên số nhỏ nhất
Ví dụ:
<b>MIN.INP</b> <b>MIN.OUT</b>
4
307uv5xly08mnp
0108
<b>Bài 3. (5 điểm)</b>
<b>SỐ ĐƠN ĐIỆU</b>
Số a1, a2, … , an được gọi là số đơn điệu nếu ai < ai+1 > ai+2 hoặc ai > ai+1 < ai+2 (Với
mọi i = 1..n-2). Số có một chữ số; số có hai chữ số khác nhau cũng được gọi là số đơn
Ví dụ: các số 5, 58, 3748, 32435465768 là các số đơn điệu vì:
Số 5 có 1 chữ số
Số 58 có 2 chữ số khác nhau
Số 3748 có 3<7>4<8
Số 32435465768 ta thấy: 3>2<4>3<5>4<6>5<7>6<8
<b>Yêu cầu:</b> Viết chương trình xác định số chữ số lớn nhất tạo thành số đơn điệu của
một số cho trước.
<b>Dữ liệu:</b> Vào từ file văn bản <b>SDD.INP</b>: Gồm một số nguyên dương N có khơng q
75 chứ số.
<b>Kết quả:</b> Ghi ra file văn bản <b>SDD.OUT</b>: Chứa số nguyên là số chữ số lơn nhất tạo
thành số đơn điệu của số N.
Ví dụ:
<b>SDD.INP</b> <b>SDD.OUT</b>
3748 4
<b>Bài 4. (4 điểm)</b>
<b>SUBARRAY</b>
Cho một dãy số nguyên a1, a2, …. aN và số nguyên dương K. Dãy con ai, ai+1, … aj
(1<=i<=j<=N) là dãy được tạo từ các phần tử liên tiếp của dãy A, bắt đầu từ phần tử i và
kết thúc ở phần từ j.
<b>Yêu cầu:</b> Tìm số lượng dãy con của A có ít nhất K phần tử bằng nhau.
<b>Dữ liệu:</b> Vào từ file văn bản <b>SUBARR.INP</b>:
Dòng đầu tiên cứa 2 số nguyên dương N, K (1<=k<=N<=4.105<sub>). Dòng thứ 2 chứa N</sub>
số nguyên a1, a2, …. aN (ai<=109)
<b>Kết quả:</b> Ghi ra file văn bản <b>SUBARR.OUT</b>: Ghi ra số lượng dãy con tìm được.
(Các số trên cùng một dòng của file dữ liệu vào ghi các nhau ít nhất một ký tự
trống)
Ví dụ:
<b>SUBARR.INP</b> <b>SUBARR.OUT</b>
4 2
1 2 1 2
3
<b>--- </b>