Tải bản đầy đủ (.doc) (2 trang)

De thi tren may C

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 (140.46 KB, 2 trang )

Hội thi Tin học trẻ tỉnh Quảng Ninh lần thứ IX-2008
ĐỀ THI TRÊN MÁY BẢNG C - THPT
Ngày thi: 25-6-2008
Thời gian làm bài: 150 phút
(Đề thi gồm 02 trang)
TỔNG QUAN VỀ ĐỀ THI
Bài toán File chương trình File vào File ra Giới hạn thời gian
Bài 1
bond.pas bond.in bond.out
1 giây / 1 test
Bài 2
pencil.pas pencil.in pencil.out
1 giây / 1 test
Bài 3
keys.pas keys.in keys.out
1 giây / 1 test
Bài 1. An Encrypted Message for James Bond
Điệp viên 007 (James Bond) có một nét đặc trưng riêng là các tài liệu của ông luôn được mã hóa. Nếu
ông ta nhận được một thông báo đã được mã hóa bằng một xâu chỉ gồm các chữ số và có chứa bình
phương của một số tự nhiên n nào đó (1 < n ≤ 10.000) thì ông ta trở nên hoang mang và điều này đôi
khi làm giảm đáng kể khả năng làm việc của ông ta. Để tránh điều này, ông X đề xuất hành động như
sau: Tìm bình phương của một số tự nhiên n
2
(ở đó n là một số tự nhiên như mô tả ở trên) ở bên trái
nhất trong thông báo mã hóa và thay thế nó bởi số n. Nếu có nhiều hơn bình phương của một số
nguyên cùng bắt đầu tại vị trí trái nhất thì chọn số bình phương nhỏ nhất trong số chúng. Một bình
phương của một số là không được bắt đầu với chữ số 0. Sau đó lặp lại hành động này với thông báo
mã hóa mới cho đến khi không có một bình phương của số nguyên nào nằm trong đoạn cho trước trên
trong thông báo mã hóa còn lại.
Công việc của bạn là viết một chương trình thực hiện thuật toán của ông X đề xuất.
Dữ liệu: Dòng đầu tiên của file vào chứa một xâu chỉ gồm các chữ số và không chứa bất kỳ dấu cách


nào của thông báo mã hóa. Xâu này chứa ít nhất là 1 và nhiều nhất là 250 chữ số. Chữ số đầu tiên của
xâu không là chữ số 0.
Kết quả: File ra gồm một dòng chứa xâu đã được sửa bởi thuật toán của ông X.
Ví dụ:
bond.in bond.out
734424 268
8136045 605
Bài 2. Pencil Factory
Ở một nhà máy sản xuất bút chì, các bút chì được sản xuất theo cách sau: đầu tiên nó được sơn ở máy
sơn, rồi ngay sau đó nó được chuyển tới máy đánh véc ni. Tuy nhiên không máy nào trong số hai máy
này được điều chỉnh một cách hợp lý. Máy sơn sẽ không sơn một cái bút chì sau khi đã sơn n cái bút
chì. Bên cạnh đó, máy đánh véc ni sẽ không đánh véc ni một cái bút chì sau khi đã đánh véc ni m cái
bút chì. Vì vậy mà nhà máy đã sản xuất ra 4 loại bút chì: một loại hoàn thiện tức là được đánh cả sơn
và véc ni; một loại không được sơn và cũng không được đánh véc ni; một loại được sơn nhưng chưa
đánh véc ni và một loại được đánh véc ni nhưng không được sơn và.
Công việc của bạn là viết một chương trình được cho trước n, m và k (k là số bút chì đã được sản
xuất) và tính số bút chì thuộc mỗi loại trên. Ví dụ, nếu n = 3, m = 5 và k = 17 thì việc xử lý các bút
chì được minh họa qua bảng dưới đây (: là việc xử lý đã hoàn thành, : là việc xử lý chưa hoàn
thành):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Sơn
                
Véc ni
                
1
ĐỀ CHÍNH THỨC
Trong ví dụ trên, chỉ có 12 trong số 17 bút chì là được xử lý đầy đủ. Một cái bút chì (cái thứ 12) là
không được xủ lý một công đoạn nào cả. Một cái bút chì (cái thứ 6) là được sơn nhưng không được
đánh véc ni. Ba cái bút chì (cái thứ 4, 8 và 16) được đánh véc ni nhưng không được sơn.
Dữ liệu: File vào gồm một dòng chứa 3 số tự nhiên n, m, k (0 < n < 10

6
, 0 < m < 10
6
, 0 < k < 10
9
) ghi
ngăn cách nhau bởi một dấu cách.
Kết quả: File ra gồm một dòng ghi 4 số ngăn cách nhau bởi một dấu cách, tương ứng là số các bút
chì đã được đánh cả sơn và véc ni, số bút chì không được sơn và cũng không được đánh véc ni, số
bút chì đã được sơn nhưng không được đánh véc ni và số bút chì đã được đánh véc ni nhưng không
được sơn.
Ví dụ:
pencil.in pencil.out
3 5 17 12 1 1 3
999999 999999 999999999 999999000 999 0 0
Bài 3. Key Task
Mê cung là một lưới hai chiều các ô vuông, mỗi ô vuông hoặc là tự do hoặc có một bức tường. Một
số ô vuông tự do có chứa các cửa hoặc các chìa khóa. Có 4 kiểu chìa khóa và cửa khác nhau: xanh da
trời, vàng, đỏ và xanh lá cây. Một chìa khóa chỉ có thể mở các cửa có cùng màu với nó.
Bạn có thể di chuyển giữa các ô vuông tự do gần kề theo hướng thẳng đứng hoặc nằm ngang, di
chuyển theo đường chéo là không được phép. Bạn không thể đi qua một bức tường và cũng không thể
đi ra ngoài mê cung. Nếu một ô vuông chứa một cánh cửa thì bạn chỉ có thể đi qua nó nếu trước đó
bạn đã đi qua một ô vuông chứa một chìa khóa có thể mở được cửa này.
Dữ liệu: Dòng đầu tiên của file vào chứa hai số nguyên R và C (1 ≤ R, C ≤ 100) mô tả kích thước của
mê cung. Tiếp theo có R dòng, mỗi dòng chứa C ký tự. Mỗi ký tự có thể là: ‘#’ (tường), ‘.’ (ô vuông
tự do), ‘*’ (vị trí của bạn), ‘B’, ‘Y’, ‘R’, ‘G’ (cửa màu xanh da trời, vàng, đỏ, xanh lá cây), ‘b’, ‘y’,
‘r’, ‘g’ (chìa khóa màu xanh da trời, vàng, đỏ, xanh lá cây) và ‘X’ (lối thoát).
Chú ý rằng: có thể có nhiều hơn một lối thoát và bạn chỉ cần thoát ra tại một lối thoát nào đó trong số
các lối thoát; có thể có nhiều cửa cùng màu và có thể có nhiều chìa khóa cùng màu; Vị trí của bạn
(đánh dấu ‘*’) xuất hiện đúng một lần.

Kết quả: File ra gồm một dòng chứa xâu “Escape possible in S steps.”, ở đó S là số
bước nhỏ nhất để bạn đi đến một lối thoát bất kỳ nào đó. Nếu không thể đi tới một lối thoát thì ghi ra
xâu “The poor student is trapped!”. Một bước đi được định nghĩa là một sự di chuyển
giữa hai ô kề cạnh. Việc nhặt chìa khóa hay mở cửa không tính là một bước.
Ví dụ:
keys.in keys.out
1 10
*........X
Escape possible in 9 steps.
1 3
*#X
The poor student is trapped!
3 20
####################
#XY.gBr.*.Rb.G.GG.y#
####################
Escape possible in 45 steps.
- HẾT -
2

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×