You are on page 1of 3

KIỂM TRA MÔN TIN HỌC 9

Ngày 13-03-2021. Thời gian làm bài 150 phút.


TỔNG QUAN BÀI THI
Tên bài Tên chương trình Tập tin dữ liệu Tập tin kết quả
Bài 1 Thành lũy BASTION. * BASTION.INP BASTION.OUT
Bài 2 Hình vuông SQUARE. * SQUARE.INP SQUARE.OUT
Bài 3 Số nguồn GEN.* GEN.INP GEN.OUT
Bài 3 Ốc sên OSENEAT.* OSENEAT.INP OSENEAT.OUT
Dấu * được thay thế bởi PAS hay CPP của ngôn ngữ lập trình được sử dụng tương ứng là
Pascal hoặc C++.
Hãy lập trình giải 4 bài toán sau, đề gồm 2 trang:
BÀI 1. Thành lũy - BASTION. * (4 điểm)
Thời xa xưa, để phòng và chống lại sự tấn công của các bộ tộc khác, Tộc trưởng bộ tộc
Fladland đã quyết định cho xây dựng thành lũy để quản lí các điểm dân cư đông đúc của
mình. Theo lời khuyên của thầy phù thủy, tên của các thành lũy phải được chọn là một xâu
con các ký tự liên tiếp nhau của một tên thiêng W nào đó.
Ví dụ, nếu W là ‘baobaab’ thì tên của thành lũy có thể là ‘ba’, ‘oba’, ‘baab’, ... còn ‘bab’ hoặc ‘bob’
không thể được dùng để đặt tên. Dĩ nhiên, các thành lũy khác nhau không được đặt tên trùng
nhau.
• Yêu cầu: Tộc trưởng muốn biết có thể xây dựng được tối đa bao nhiêu thành lũy dựa vào
số tên có thể đặt.
• Dữ liệu vào: Đọc vào file văn bản BASTION.INP gồm một dòng chứa tên thiêng W, trong
đó, chỉ có các chữ cái la tinh thường, có độ dài không quá 255 ký tự.
• Kết quả: Ghi vào file văn bản BASTION.OUT chứa một số nguyên là số lượng các tên thành
lũy có thể đặt khác nhau.
• Ví dụ:
BASTION.INP BASTION.OUT
baobaab 23

BÀI 2. Hình vuông - SQUARE. * (4 điểm)


Cho một lưới N x N điểm gồm N dòng và N cột (2≤ N≤ 9) là các điểm nút của một lưới ô
vuông (các dòng được đánh số từ trên xuống dưới, các cột được đánh số từ trái qua phải, bắt
đầu từ 1). Trên lưới điểm đó cho một số đoạn thẳng, mỗi đoạn nối một cặp điểm cạnh nhau
trên cùng một dòng (đoạn ngang) hoặc trên cùng một cột (đoạn dọc). Cần phải đếm số hình
vuông với kích thước nhất định được tạo thành bởi các đoạn thẳng đã cho trên lưới nêu trên.
Ví dụ ở hình sau đây có 3 : 2 hình kích thước 1 và 1 hình kích thước 2 (kích thước của hình
vuông là số các đoạn thẳng tạo thành 1 cạnh của hình vuông).

Đề kiểm tra HSG Tin học Quận 3 Ngày 13-03-2021 1


• Yêu cầu : Hãy xác định số lượng các loại hình vuông và số hình vuông mỗi loại trong lưới
điểm đã cho (hình vuông có cùng kích thước được xếp vào cùng loại).
• Dữ liệu vào : Đọc file văn bản SQUARE.INP
- Dòng 1 chứa số nguyên N là số cột của lưới.
- Dòng 2 chứa số nguyên M là số các đoạn thẳng được cho trên lưới.
- Mỗi dòng trong M dòng tiếp theo:
• Hij chỉ một đoạn ngang trên dòng thứ i nối 2 điểm ở cột j và j+1;
• Vji chỉ một đoạn dọc trên cột thứ j nối 2 điểm ở dòng i và i+1.
Số liệu được ghi từ vị trí đầu tiên của mỗi dòng, giữa ký tự và số và giữa 2 số liên tiếp
trên một dòng có đúng một dấu cách.
• Kết quả: Ghi vào file văn bản SQUARE.OUT
- Dòng 1 ghi số nguyên P là số loại hình vuông có trên lưới.
- Mỗi dòng trong P dòng tiếp theo ghi thông tin mô tả về một loại hình vuông và số
lượng hình vuông đó bao gồm 2 số nguyên a, b cho biết có a hình vuông có cạnh độ
dài b.
- Các thông tin về các loại hình vuông phải được đưa ra theo thứ tự tăng dần của độ
dài cạnh. Trong trường hợp không tìm được bất kỳ hình vuông nào thì ghi trong file
SQUARE.OUT chỉ gồm 1 dòng duy nhất chứa thông báo “ NO “.
• Ví dụ:
SQUARE.INP SQUARE.OUT
4 2
16 21
H11 12
H13
H21
H22
H23
H32
H42
H43
V11
V21
V22
V23
V32
V41
V42
V43

BÀI 3. Số nguồn- GEN.* (6 điểm)


Giả thiết N là số nguyên dương. Số nguyên M là tổng của với các chữ số của nó.N được
gọi là số nguồn của M. Ví dụ N=245 khi đó M=245+2+4+5=256. Vậy số nguồn của 256 là 245.

Đề kiểm tra HSG Tin học Quận 3 Ngày 13-03-2021 2


Một số có thể không có hoặc nhiều hơn một số nguồn, chẳng hạn 216 có 2 số nguồn là 198 và
207, 121 không có số nguồn.
• Yêu cầu: Cho số nguyên M không có quá 100 chữ số. Hãy tìm nguồn nhỏ nhất của nó.Nếu
không có xuất 0.
• Dữ liệu: Vào từ file văn bản GEN.INP có dạng:
- Dòng đầu tiên chứa số nguyên T – là số lượng tests
- Dòng sau mỗi dòng chứa một số M.
• Kết quả: Đưa ra file GEN.OUT, mỗi kết quả ghi trên một dòng.
• Ví dụ:
GEN.INP GEN.OUT
3 198
216 0
121 1979
2005
BÀI 4. Ốc sên - OCSENEAT.* (6 điểm)
Có một khu vườn hình chữ nhật kích thước n x m ô vuông (n dòng, m cột). Ta đánh số các
dòng từ 1 đến n theo chiều từ trên xuống dưới, các cột từ 1 đến m theo chiều từ trái qua phải.
Tại những ô vuông là đất bình thường người ta trồng rau. Tuy nhiên có một số ô là đá nên
không trồng rau được. Có một chú ốc sên tại ô (x, y), x là vị trí dòng, y là vị trí cột. Từ một ô,
chú ốc sên chỉ có thể di chuyển sang 4 ô liền kề (x-1, y), (x+1, y), (x, y-1), (x, y+1). Nếu gặp ô đá
thì ốc sên không đi vào được.

• Yêu cầu: Hãy xác định xem chú có thể ăn được số lượng rau nhiều nhất là bao nhiêu.
• Dữ liệu : Trong file OCSENEAT.INP, gồm các dòng sau:
- Dòng thứ nhất gồm bốn số nguyên m,n, x, y, mỗi số cách nhau một khoảng trắng
(1 ≤ x ≤ m ≤ 100,1 ≤ y ≤ n ≤ 100).
- Trong m dòng tiếp theo, mỗi dòng gồm m số nguyên 0 hoặc 1 biểu thị vườn rau, mỗi
số cách
nhau một khoảng trắng. Số 0 nghĩa là ô rau, còn số 1 nghĩa là ô đá. Dữ liệu cho đảm bảo ô
(x, y) là ô rau.
• Kết quả: Ghi vào file OCSENEAT.OUT:
- Là một số nguyên xác định số lượng ô lớn nhất mà ốc sên có thể di chuyển đến.
• Ví dụ:
OCSENEAT.INP OCSENEAT.OUT
4524 10
00100
01001
10000
01001
1111 1
0

Đề kiểm tra HSG Tin học Quận 3 Ngày 13-03-2021 3

You might also like