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

TỔNG HỢP ĐỀ THI HSG MÔN TIN HỌ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 (962.64 KB, 28 trang )

TỔNG HỢP MỘT SỐ ĐỀ THI & BÀI TẬP
ÔN THI TỈNH MÔN TIN HỌC LỚP 9
Nguồn: sưu tầm từ INTERNET
Câu



3

: Khi đào hầm Thủ Thiêm người ta dùng một Robot để đào, ban đầu người

ta đào đường hầm
1 đơn vị độ dài sau đó đặt Robot xuống. Robot này được điều khiển bởi 2

lệnh là: C1 và N2.
- Lệnh C1 là đào thêm 1 đơn vị độ dài thì tốn 2 đơn vị năng lượng.
- Lệnh N2 là đào thêm một đoạn đường hầm bằng độ dài đang có thì tốn 4 đơn vị năng lượng.
Hãy viết chương trình ra lệnh cho Robot đào một đường hầm có độ dài k đơn vị độ dài với các
lệnh là ít nhất và sự tiêu tốn năng lượng là thấp nhất. Biết ban đầu đường hầm dài 1 đơn vị độ dài.
Robot.out gồm hai dòng:
+ Dòng đầu là số năng lượng ít nhất đã tiêu tốn cho Robot đào hầm.
+ Dòng tiếp theo chứa các lệnh C1 hoặc N2, mỗi lệnh cách nhau 1 khoảng trắng.


dụ:
Robot.inp Robot.out
10 12
C1 N2 C1 N2
Bài Test
Test Robot.inp Robot.out Điểm
1 12


12
C1 C1 N2 N2
1.0
1.0
2 155
43
C1 N2 N2 C1 N2 C1 N2 N2 C1 N2 C1
1.0
1.0
3 1053
46
C1 N2 N2 N2 N2 N2 C1 N2 C1 N2 C1 N2 N2 C1
1.0
1.0
Bài 2: (6,0 diem ) ĐÓNG GÓI SẢN PHẨM
Một nhà máy xây xát cần đóng gói gao vào các loại bao 100 kg, 50 kg, 20 kg, 10 kg, 5 kg.
Với mỗi 1oại bao chỉ được đóng gói khi đủ số lượng quy định cho 1oại bao đó. Tuy nhiên công ty
sản xuất các loại bao thì cung cấp số lượng bao theo từng đợt với số lượng từng loại khác nhau.
Yêu cầu: Với khối lượng gạo va số lượnng bao của từng loại cho trước, hãy tìm một phương án
đóng gói sao cho số lượng gạo thừa không được đóng gói (nếu có) là ít nhất.
- Dòng đầu ghi số lựog gạo N cần phải đóng gói (0 < N < 1000000).
- Dòng thứ hai ghi 5 số tự nhiên cho biết số lượng bao của từng loại theo thứ tự 100kg, 50kg,
20kg, 10kg, 5kg
Output
- Dòng đầu ghi số gạo thừa không được đóng gói.
- Dòng thứ hai ghi 5 so nguyên tương ứng là số lượng bao đã xử dụng.
Bai 3 Với số nguyên dương N cho trước, xét tập hợp A(N) gồm tất cả các phân số có giá trị
thuộc đoạn [0,1] vs mẫu số ko lớn hơn N, Vd vs N=5, ta có phân số: 0/1; 1/5; 1/3; 2/5; 1/2; 3/5;
2/3; 3/4; 4/5; 1/1
Cho trc số nguyên dương N, viết chương trình in ra mọi phân số tối giản thuộc A(N) theo

thứ tự tăng dần, mỗi phân số viết dưới dạng tử số/ mẫu số.
BL2.INP
BL2.OUT
1000
5 0 20 30 45
0
5 0 20 10 0
BL2.INP
BL2.OUT
950
10 0 20 0 0
O
9 0 2 0 0
BÀI 3: DIỆN TÍCH

Cho một bảng hình chữ nhật kích thước MxN, gồm M.N hình vuông đơn vị (hình vuông đơn
vị là hình vuông có cạnh bằng đơn vị). Trên mỗi hình vuông đơn vị có một chữ cái (trong bàng chữ
cái tiếng Anh) viết in.
Yêu cầu:

Tìm diện tích hình chữ nhật lớn nhất trong bảng chữ nhật nói trên mà tất cả các chữ cái trong
các

hình vuông đơn vị là đôi một khác nhau.
Ví dụ:
DIENTICH.INP DIENTICH.OUT
4 4
AECG
FFJH
FFFF

ABCD
6
Bài 3.

(3.0

điểm)

Xoá số

Tên

chương

trình:

XOASO.PAS
Các số tự nhiên từ 1 đến N (với 1≤ N ≤ 3000) được xếp theo thứ tự tăng dần trên một đường
tròn theo chiều kim đồng hồ. Bắt đầu từ số 1, thực hiện chuyển động theo chiều kim đồng hồ và cứ
bước qua cách một số lại xoá đi một số trước nó (ví dụ: có 3 số 1 2 3, bắt đầu từ số 1 bước qua số 3
sẽ xóa đi số 2). Công việc đó tiếp diễn cho đến khi trên vòng tròn chỉ còn lại đúng một số.
Ví dụ:
XOASO.INP XOASO.OUT
10 5
100 73
Bai 1 Viết chương trình tính tổng, hiệu, tích, thương, của 3 số nguyên trong đó sử dụng các CTC thực hiện các phép
tính trên đối với 2 số nguyên.
Bài 4.

(2.0


điểm)

Tạo bảng

số Tên chương trình: BANGSO.PAS
Từ số nguyên dương N bất kỳ cho trước, ta tạo lập được bảng NxN phần tử nguyên dương
theo quy luật được cho trong ví dụ sau:
1 2 3 4 5 6
2 4 6 8 10 12
3 6 9 12 2 4
4 8 12 2 4 6
5 10 2 4 6 8
6 12 4 6 8 10
Bài 3. Số đẹp
Theo quan niệm của khoa học huyền bí phương đông, số 6 được coi là LỘC, số 8

được coi
là PHÁT. Nhiều người số gắng sở hữu các số này để sử dụng trong số điện thoại

hoặc biển số xe, …
Số đẹp là số trong biểu diễn thập phân chỉ chứa hai chữ số trên. Dãy các số đẹp theo thứ tự là: 6, 8,
66,68,86,88, … Yêu cầu: Tìm số đẹp thứK
Ví dụ
NICENUM.INP NICENUM.OUT
1
6
3
66
4

68
6
88 dung tam giac so
Bài 2: (2đ) Viết chương trình nhập vào hai mốc thời gian trong một năm cho biết từ mốc thời gian thứ nhất đến mốc
thời gian thứ hai có bao nhiêu ngày. Ngaythang.pas
dữ liệu vào
mốc 1 : ngay = 29 tháng = 2
mốc 2 : ngay = 3 tháng = 4 năm 2009
là sai cho nhập lại
dữ liệu vào
mốc 1 : ngay = 29 tháng = 2
mốc 2 : ngay = 3tháng = 3 năm 2000
dữ liệu ra
3 ngày
Bài 2: Điểm trong Tên chương trình POINT.PAS
Cho một số tự nhiên N và mảng số thực A kích thước 4 x N chứa dữ liệu về N hình chữ nhật: (a[1,i], a[2,i]) và (a[3,i],
a[4,i]) là toạ độ góc trái trên và góc phải dưới của hình chữ nhật thứ i. Hỏi có điểm nào trong mặt phẳng toạ độ thuộc
tất cả các hình chữ nhật đã cho không? Hãy lập trình để giải bài toán đó.
Ví dụ :
Point.inp Point.inp
3
3 1 6 4
1 2 4 6
2 3 5 5
3
3 3 4 4
1 1 2 2
5 5 6 6
Xuất ra màn hình Xuất ra màn hình
3.0 1.0 6.0 4.0

1.0 2.0 4.0 6.0
2.0 3.0 5.0 5.0
3.0 3.0
Co diem thuoc hinh chu nhat.
Khong co diem nao thuoc tat ca cac hinh chu nhat.
Bài 2: (3 điểm) Chọn dãy Tên chương trình: CHONSO
Cho dãy n số nguyên dương a
1
,a
2
,…,a
n
. Một dãy con của dãy nói trên là dãy được lập từ
dãy đã cho bằng cách bỏ đi một số số hạng của dãy và giữ nguyên trật tự các số còn lại. Hãy tìm
một dãy con thỏa mãn tính chất:
- Không có 3 số liên tiếp nào của dãy ban đầu có mặt trong dãy con
- Trong 3 số liên tiếp của dãy ban đầu có ít nhất 1 số có mặt trong dãy con.
- Tổng các số hạng của dãy con được chọn là lớn nhất có thể được
Ví dụ
CHONSO.INP CHONSO.OUT
6
2
6
5
1
7
3
21 4
2
3

5
6
giong tam giac so 2
Bài tập 1: Viết chương trình nhập vào số tự nhiên N (N lẻ), sau đó điền các số từ 1 đến n
2

vào trongs một bảng vuông sao cho tổng các hàng ngang, hàng dọc và 2 đường chéo đều
bằng nhau (bảng này được gọi là Ma phương).
Ví dụ: Với N=3 và N=5 ta có
Bắc
2 7 6 3 16 9 22 15
9 5 1 2
0
8 21 14 2
4 3 8 Tây 7 25 13 1 19 Đông
24 12 5 1
8
6
11 4 17 1
0
23
Nam
Bài 8: Cho ma trận các số nguyên A[m,n], hãy sắp xếp lại ma trận sao cho các phần tử của
chúng có giá trị tăng dần theo đường xoắn óc từ ngoài vào trong như hình vẽ sau:
Bài 3 : (3đ) Sắp xếp các số nguyên dương theo thứ tự giảm dần theo số ước của chúng.
Ví dụ:
Input Output
47; 78; 32; 38; 30; 56; 35; 31; 51; 66;
Cho i=2 chay toi so lon nhat.
neu tung so chia het cho i then tang dem len

Cac so da tao:
47; 78; 32; 38; 30; 56; 35; 31; 51; 66;
Cac so sau khi da sap xep giam dan theo so uoc:
78; 30; 56; 66; 32; 35; 51; 38; 47; 31;
Bi 1: (3) Vit chng trỡnh nhp vo n giỏ tr to hỡnh sau:
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
Bi 4. (1,5 ) Trũ chi vi bng s (Tờn file Div.pas )
Cho mt bng s gm n s nguyờn dng, mi s c vit trờn mt ụ. Hóy ct bng s ny
thnh nhiu on nht sao cho tng cỏc phn t trong cỏc on l bng nhau
Vớ d:
on 1: 10
on 2: 2 + 6 + 2 =10
on 3: 5 + 2 + 1 + 2 = 10
Bi 1 Cõy noel
Hóy vit chng trỡnh in ra mn hỡnh cõy thụng noel cú dng
* *
* * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * *
* * *
* * *
* * *
* * *
* * * * * * * * * * * *
* * * * * * * * * * * *

Trong ú tng 1 v 2 cú N dũng, tng 3 cú 2 dũng (N l mt s nguyờn nhp t bn phớm).
Bi 2 S hon ho
Trong bui hc nhúm, bn tớ bn tốo: trong cỏc s t nhiờn N (N<=10000) cú bao nhiờu s hon ho, bn
Tớ cho bit: s t nhiờn a c gi l s hon ho nu tng cỏc c ca a (k c 1) bng chớnh nú, vớ d 6 l s hon
ho vỡ 6=1+2+3. Em hóy vit chng trỡnh giỳp bn Tốo tỡm ra cõu tr li (vi n nhp t bn phớm). Cho i chay tu 1
den n. Cho j chay tu i+1 den n. Neu a[j] chia het cho i thi tang a[j] len.
Câu 2. Một tệp có tên là BINARY.DAT có cha một dãy số nhị phân đợc viết liền nhau(số nhị phân là
số chỉ chứa 0 hoặc 1 và không vợt quá 32 số). Viết chơng trình đọc tệp trên và đa kết quả ra màn hình
là số thập phân tơng ứng.
Nhithap.pas
VD: BINARY.DAT ghi : 101011111100000011111 Kết quả: 1439775
11
1





1

Bi 1.(3 ). B s Py ta go (Tờn file Pytago.pas) pitago5.pas
Mt b ba s t nhiờn c gi l b s Py-ta-go nu tha món iu kin : bỡnh phng mt s bng tng bỡnh
phng hai s cũn li.
Vớ d : B s (3; 4, 5) l mt b s Pytago vỡ :
2 2 2
5 3 4= +
.
Yờu cu : Nhp vo t bn phớm s nguyờn dng X,
( )
6

1 10X

Kt qu : In ra mn hỡnh s 1 nu cú th tỏch X thnh tng ca ba s nguyờn dng a, b, c sao cho (a; b; c) l
mt b ba s Py-ta-go.
Vớ d :
Nhp Kt qu Gii thớch
X = 30 1 Cho i=3 to (n div 3) do
Inc(j); until (j>n-i-j) or
(i*i)+(j*j)<(n-i-j)*(n-i-j);
30 5 12 13= + +
M
2 2 2
13 5 12= +
Bai 1 Tìm các số tự nhiên nhỏ hơn hoặc bằng n mà sau khi làm phép phân tích ở phần a/ có
nhiều nhân tử nhất.
Ptichnn.pas
VD: Nhập vào n = 9.
a/ 9 = 3.3
cho i=2 to n do
cho j=i+1 to n do
if a[j] mod i=0 then
tang b[j];
a[j]:=a[j] div i;
giam j;
b/ Các số có nhiều nhân tử nhất sau khi làm phép phân tích là:
8 = 2.2.2
Câu 1. Xâu S chỉ bao gồm các kí tự ngoặc mở ( và ngoặc đóng ) xâu S xác định một các đặt
ngoặc đúng, nếu thoả mãn một trong các điều kiện sau:
- Số ngoặc mở bằng số ngoặc đóng
- Nếu duyệt từ trái sang phải, số lợng ngoặc mở luôn lớn hơn hoặc bằng số lợng ngoặc đóng.

Ví dụ : xâu S= ( ( ( ) ( ( ) ) ) ) xác định là cách đặt ngoặc là đúng.
Còn xâu S= ( ( ) ( ) ) ) ( ( ) ) xác định là cách đặt ngoặc là sai ở ví trí thứ 7.
Hãy viết đoạn chơng trình kiểm tra xâu S có đợc đặt ngoặc đúng hay không nếu không đúng
thì đa ra ví trị sai trong xâu.
ngoacdon.pas
Bi 1: Trong dp ngh hố, bộ Mai c b m cho i tm bin. Trờn b bin bộ nht c N viờn
ỏ cui rt p mt. Mai quyt nh v trờn cỏt mt li hỡnh ch nht kớch thc a x b (a, b
nguyờn dng) c chia thnh a x b ụ vuụng bng cỏc ng ngang dc sao cho cú th ri N
hũn si ny vo cỏc ụ vuụng sao cho mi ụ vuụng cú nhiu nht mt viờn si.
Hóy giỳp bộ Mai chn kớch thc ca hỡnh ch nht sao cho chu vi ca nú l nh nht. In
ra mn hỡnh giỏ tr chu vi ny.
D liu: Nhp vo t bn phớm s nguyờn dng N (N 10
9
).
Kt qu: Ghi ra mn hỡnh chu vi ca hỡnh ch nht tỡm c
Vớ d:
D liu nhp vo: 15
Kt qu in ra: 16
Gii thớch: Hỡnh ch nht tỡm c cú kớch thc 4 x 4 tambien.pas
BÀI 1 : BÀI TOÁN PHỦ BÀN CỜ
Cho một bàn cờ vuông n x n bò loại bỏ một ô ( i, j) . Người ta muốn phủ kín bàn cờ bằng
các thanh chữ L, mỗi thanh đặt lên bàn cờ sẽ phủ được 3 ô vuông của bàn cờ ( xem hình
vẽ)


Hãy lập trình cho biết có thể phủ kín được bàn cờ không và nếu được thì cho một phương án
để phủ kín bàn cờ.
Câu 3: (3,5 điểm) Đếm nhóm bạn trong Hội trại NHOMBAN.PAS
Trong một Hội trại hè do Tỉnh Đồn tổ chức, có N học sinh tham gia, trong đó, có một số học sinh quen nhau.
Một số học sinh được gọi là cùng 1 nhóm bạn, nếu bất kì một học sinh nào thuộc nhóm đều có quen ít nhất 1 học sinh

khác trong cùng nhóm đó.
u cầu: Hãy đếm xem có bao nhiêu nhóm bạn trong N học sinh tham gia Hội trại.
a[i,j] = 1 nếu học sinh i quen học sinh j (với i ≠j).
a[i,j] = 0 nếu học sinh i khơng quen học sinh j (với i ≠j).
a[i,i] = 1 (học sinh i được xem là quen bản thân nó).
Ví dụ:
NHOMBAN.INP NHOMBAN.OUT
5
1 0 0 1 1
0 1 1 0 0
0 1 1 0 0
1 0 0 1 1
1 0 0 1 1
2
Dung (set of byte)
Câu 3: (3,5 điểm) Hệ thống cảnh báo thảm họa HTCB.PAS
Để giảm bớt thiệt hại khi có rủi ro do động đất và sóng thần gây ra, Trung tâm dự báo
thảm họa thiên tai X muốn xây dựng hệ thống cảnh báo động đất và sóng thần ở các vùng
biển. Vệ tinh VNSAT đã cung cấp bản đồ khảo sát độ sâu đáy biển của các vùng biển. Bản
đồ là lưới ơ vng gồm M dòng và N cột, mỗi ơ trên bản đồ ghi một số ngun dương cho
biết độ sâu của đáy biển tại điểm khảo sát. Trung tâm X cần tìm trên bản đồ một hình chữ
nhật có các cạnh song song với các cạnh của bản đồ và các ơ trong hình chữ nhật đó có
cùng một độ sâu để xây dựng hệ thống cảnh báo thảm họa.
Ví dụ:
:
HTCB.INP HTCB.OUT
4 5
1 2 1 3 2
3 2 2 2 1
1 2 2 2 1

1 3 3 2 2
6
1 2 1 3 2
3 2 2 2 1
1 2 2 2 1
1 3 3 2 2


1 1 2 2
1 0 4 2
3 4 4 5
3 3 5 5
Câu 3: (3,5 điểm) Xếp hộp lồng nhau XEPHOP.PAS
Bé Ri tuy còn nhỏ nhưng là một cô bé rất xinh xắn và chăm chỉ. Mẹ bé Ri là chủ một cửa hàng. Hàng ngày,
cửa hàng của mẹ loại ra rất nhiều hộp giấy hình hộp chữ nhật. Bé Ri thường giúp mẹ xếp những hộp giấy này lồng vào
nhau cho gọn.
Giả sử có N hộp giấy, các hộp được đánh số từ 1 đến N. Với mỗi hộp giấy, bé Ri biết được chính xác độ dài
hai cạnh đáy của hộp là a và b.
Yêu cầu: Hãy giúp bé Ri xếp các hộp sao cho số lượng các hộp lồng vào nhau là lớn nhất.
XEPHOP.INP XEPHOP.OUT
5
1 5
5 7
6 4
3 6
2 5
3
2 3 5
Sap xep day tren
giam dan.

Sau do xet roi viet
ra.
Bài 3(9 điểm) -Tô màu tomau.pas
Cho một bảng gồm các ô vuông kích thước M x N (M, N ≤100), trong đó có một số ô đen,
còn lại là các ô trắng. Yêu cầu: Hãy tô màu tất cả các ô trắng bằng hai màu xanh và vàng sao cho
trên mỗi dòng cũng như trên mỗi cột số các ô màu xanh và vàng lệch nhau không quá 1.
Ví dụ:
BAI3.INP BAI3.OUT
6 4
1 0 1 0
1 0 0 0
0 1 0 1
1 1 0 0
0 1 0 1
1 0 1 0
DVDX
DXXV
XDVD
DDVX
VDXD
DXDV
Bài 3: Các nhân viên trong cơ quan có thể biết nhà nhau. Một cặp được viết (A,B) có nghĩa là nhân
viên A biết nhà nhân viên B, nhân viên A sẽ biết nhà nhân viên C nếu nhân viên B biết nhà nhân
viên C. Độ quan trọng của một nhân viên được đánh giá bởi số nhân viên khác mà nhân viên này
biết nhà. Cho số nhân viên, số cặp nhân viên biết nhà, các cặp nhân viên biết nhà. Hãy tìm ra nhân
viên quan trọng nhất (Nếu có nhiều lấy người có chỉ số nhỏ).
Ví dụ:
NHA.IN NHA.OUT
5 4
3 1

3 2
4 3
5 3
4
Tim tuan suat cua tat
ca cac so tren sau do
xet tung hang, tung so
Bài 2: SỐ PHẢN NGUYÊN TỐ PNTOHAY.PAS
Một số tự nhiên n được gọi là số phản nguyên tố nếu nó có nhiều ước số nhất trong n số tự
nhiên đầu tiên
Cho N tìm số phản nguyên tố lớn nhất nhỏ hơn n.
ví dụ
SOPNT.INP SOPNT.OUT
1 1000 840
cho i chay tu1->n do. Cho j chay tu i+1->n do. Neu j chia het cho i then tang a[j]
7
1
3

4
9

3
1


8
3
4
8


Bài 4: (3,0 điểm) Hoán vị hoanvi5.pas
Cho một mảng A gồm N số là một hoán vị từ 1 đến N. Một dãy con của dãy trên là một
đoạn liên tục từ u đến v (u v).
Yêu cầu: Tìm tất cả các dãy con sao cho dãy con đó cũng là một hoán vị của các số liên tiếp bắt
đầu từ 1.
Ví dụ:
HOANVI.INP HOANVI.OUT
6
3 5 4 1 2 6
4
4 4 1
4 5 2
1 5 5
1 6 6
Bi 3 (Khúa s) :
Mt khúa s gm hai vũng s. Vũng ngoi c nh ghi cỏc s a
1
, a
2
, , a
N
; vũng trong ghi
cỏc s tng ng vi vũng ngoi l b
1
, b
2
, , b
N
. m khúa, ta phi xoay

vũng trong qua trỏi vi mt s nc no ú. Khi xoay vũng trong mt nc
thỡ dóy cỏc s b
1
, b
2
, , b
N
cú th xem nh c thay i bng mt hoỏn v
vũng trũn. Khúa ch cú th m c nu tng tt c cỏc a
i
b
i
(i =1,2, ,N)
l nh nht. Hóy ch ra cỏch m c khúa.
Yờu cu:
D liu vo file text, tờn file l BL3.INP, gm 3 dũng. Dũng u ghi s
nguyờn dng N (N<100) ; dũng tip theo ghi dóy s nguyờn dng a
1
,
a
2
, , a
N
v dũng cui cựng ghi dóy s b
1
, b
2
, , b
N
( a

i
, b
i
<100). Mi s trong cựng mt dũng cỏch
nhau ớt nht mt khong trng.
In ra mn hỡnh hai s M v k; trong ú M l giỏ tr nh nht ca tng tt c cỏc a
i
b
i
; k l s
nc cn xoay (trong trng hp cú nhiu phng ỏn, hóy c gng a ra cng nhiu phng ỏn cng
tt, kt qu ghi ra mn hỡnh s cú dng M k
1
k
2
)
Vớ d :
Input (BL3.INP) Output
8
1 2 4 5 3 8 6 9
7 6 3 1 8 2 4 3
16 3
Bi 3 Trong mt ca hiu cú N mt hng (0< N 10), bit mt hng th j cú n giỏ
l a
j
ng (0< aj 100). Bn Trung cú M ng (0<M 10
3
) v mun mua ht s tin
ny. Hóy ch giỳp cho bn Trung mt cỏch mua mt s mt hng trong s N mt hng
ca ca hiu (vi iu kin mi mt hng ch c phộp mua nhiu nht l mt loi).

Vớ d : Ca hiu cú 5 mt hng vi n giỏ mi mt hng th 1,2, ,5 theo th
l 2 , 12, 6 , 7, 5 . Nu Trung cú 17 ng thỡ s cú phng ỏn mua l: Mua mt
hng th 2 v th 5.
Yờu cu : Nhp t bn phớm s nguyờn M v dóy s nguyờn a
1
, a
2
, , a
n
. Gi
thit bi toỏn luụn luụn cú nghim. Hóy in ra mn hỡnh ch s ca cỏc phn t tng
ng trong dóy .
Vớ d : -Dóy nhp vo gm 5 phn t l 2, 12, 6, 7, 5 v M = 17.
- Cỏc ch s ca dóy phi in ra l : 2, 5 Giong bai tam giac so
Bi 2:( Dóy vũng )
Ta xếp dãy số nguyên {a
N
} trên một vòng tròn theo chiều kim đồng hồ lần lượt từ a
1
, a
2
, đến
a
N
. Với mỗi vị trí thứ i của dãy ta có thể sinh ra N tổng theo qui tắc sau:
S
1
= a
i
; S

2
= a
i
+ a
i+1
; S
3
= a
i
+ a
i+1
+ a
i+2
; ; S
N
= a
i
+ a
i+1
+ a
i+2
+ + a
N
+ a
1
+ +a
i-1

Xác định vị trí thứ i của dãy {a
N

} ban đầu sao cho tất cả tổng sinh ra theo cách trên đều khác 0.
Yêu cầu : Nhập từ bàn phím N số nguyên a
1
, a
2
, , a
N

(0<N ≤20; -100≤ a
i
≤ 100 ). In ra màn hình vị
trí thứ i của dãy thoả mãn đề bài. Trong trường hợp có nhiều vị trí thì chỉ cần nêu một vị trí. Nếu không
tìm thấy thì thông báo “Khong tim thay”.
Ví dụ:
Input (dãy nhập vào) Output (kết quả)
-3 5 -2 -1 2
Bài 3:( Mèo và chuột ) Một bàn cờ 8 x 8 ô vuông mỗi ô được đánh địa chỉ là cặp số (x,y), (trong đó: x
là số thứ tự của hàng từ 1 đến 8 - tính từ trên xuống; y số thứ tự của cột từ 1 đến 8 - tính từ trái qua
phải). Trên bàn cờ có đặt trước các chú chuột máy ở một số ô. Một chú mèo máy có thể nhìn thấy các
chú chuột này nếu chuột cùng nằm trên một đường thẳng với nó hoặc trên cùng một đường chéo với
nó.
Xác định vị trí để đặt một chú mèo máy sao cho nó có thể nhìn thấy được tất cả chú chuột máy
đã có trên bàn cờ.
Ví dụ : Với N= 4 (xem hình bên) và các cặp (x, y) nhập vào từ bàn phím và ghi kết quả ra File
như sau:
Bài 4 : Cho số nguyên dương N, người ta tạo ra số nguyên M bằng cách viết liên tiếp nhau các số
nguyên từ 1 đến N. Ví dụ với N=13, ta có M=12345678910111213. Người ta tiến hành thu gọn M
bằng cách : Trong số M lần lượt xóa tất cả các chữ số ở vị trí chẵn thu được số M1, sau đó trong M1
ta lại xóa tất cả các số ở vị trí lẻ thu được số M2, rồi lại xóa tất cả các chữ số ở vị trí chẵn trong M2 ,
… cho đến khi chỉ cũn lại một chữ số. xoachanle.pas

M=12345678910111213 => M1=135790123 => M2 = 3702 => M3=30 => M4=0
Yêu cầu : Cho số nguyên dương N( 1<N<106 +1). Hãy xác định chữ số còn lại sau quá trình
thu gọn số M tương ứng.
dung sau ki tu. Cho i chay tu1 to length Neu chan thi s[i]=c; xoa;
cho i chay tu 1 to length. Neu le thi s[i]=l; xoa;
Bài 1 (Tìm số dư)
Đặt S
N
= 2
1
+ 2
2
+ 2
3
.+ 2
4
. Viết chương trình tìm số dư khi chia S
N
cho 30.
Yêu cầu : Nhập từ bàn phím số nguyên dương N ( N<=50). In ra màn hình số dư r khi chia S
N
cho
30.
Ví dụ :
Input (N) Output
10 6 So du cua Sn luon lap
Bài 3: que diêm
Ngồi nhà quá rỗi, Sơn có ý tưởng dùng các que diêm tạo thành các số thập phân. Một cách
Input (dữ liệu vào
nhập từ bàn phím)

Output (kết quả) ở File
MOUSECAT.OUT
1 8
2 3
4 3
6 1
(6; 3) Neu o nao co
chuot thi Tang gia tri
cua cac o hang ngang,
doc va cheo len.



 
đại diện cho 10 chữ số thập phân như sau:
1 2 3 4 5 6 7 8 9 0 ( sr các bạn, cái này mình ko biết viết sao hết. Nó giống như cái chỉ số trong đồng
hồ điện tử ý. ví dụ: số 1 thì có 2 gạch nhỏ.)
Cho N que diêm, Sơn có thể tạo ra một loạt các chữ số.Sơn kinh ngạc phát hiện ra số nhỏ
nhất và lớn nhất trong số đó có thể tạo được bằng cách sử dụng tất cả các que diêm của Sơn.
Giong bai tam giacs so 2
u cầu: Xác định số nhỏ nhất và lớn nhất mà Sơn có thể tạo ra.
Ví dụ: MATCH.INP MATCH.OUT
2 7 7
3 8 711
7
BÀI 12: ĐỌC SỐ LA MÃ
Viết chương trình nhập vào 1 số la mã rồi biến đổi thành số thập phân.
Input Output
DCLXVI 666
mmCcXx 2220

MMcmxLIV 2944
mmmcmxcix 3999
Giới hạn: Số La mã nhập vào là chính xác. Số thập phân nhỏ hơn 4000
BÀI 8: SỐ NGUYÊN TỐ GHÉP
Xét dãy A các số ngun tố 2, 3, 5, 7, 11, 13, 17, 19,
Trong dãy B có những phần tử là số ngun tố. Chẳng hạn 23, 3137, 8389, 157163
Các số ngun tố trong dãy B gọi là số ngun tố ghép.
u cầu: Cho trước số ngun dương K ≤ 500, hãy tìm số ngun tố ghép thứ K.
Input Output
2 3137
Bai 1 Xâu đối xứng.
u cầu: Xâu S ko q 200 kí tự. Kiểm tra xem S có phải xâu đối xứng hay ko. (Cái này dễ rồi). Nếu ko
phải thì cho biết số kí tự cần thêm vào S để S trờ thành xâu đối xứng.
Xét số đầu với số cuối. nếu số đầu với cuối = nhau thi xóa 2 số. Đau Cuoi khác nhau thi xoa 2 so va dem=dem+2. Mot
so truong hop ko dung : 13179
Bài 1: Số chia hết hồn tồn là số có tất cả các chữ số đều là ước của số hình thành từ số chữ số đầu
tiên đến chữ số đó. chiahet.pas
Cho số ngun N (N<30001), tìm số số chia hết hồn tồn thoả mãn lớn hơn 10 và nhỏ hơn N.
Bài 2 : Cho số tự nhiên M có n chữ số (0<n ≤20). Hãy hốn vị các chữ số của số M để
được một số Z đứng gần nhất sau M. Ví dụ M = 5678910, số cần tìm là Z = 5679018.
Cho i chay tu length(s)- s[i]>s[i-1]. S[i-1]=s[i]. Sau do sap xep tu i den n lai
u cầu : Nhập từ bàn phím số M . In ra màn hình số Z cần tìm. Trong trường
hợp khơng tìm thấy, hãy thơng báo ra màn hình.
Bài 1. CARD MẠNG cardmang.pas
Trung tâm máy tính NewAge dự trữ trong kho N card mạng được đánh số hiệu lần lượt từ 1 tới N (2≤N≤1500). Định
kỳ, trung tâm tiến hành việc kiểm định chất lượng để xác định card hỏng bằng K phép thử. Mỗi phép thử được tiến
hành trên một cặp card mạng bất kỳ bằng cách lắp chúng vào một thiết bị chuyên dụng cho phép xác định khả năng
truyền thông của hai card mạng đó. Nếu hai card mạng đó liên lạc tốt với nhau thì cả hai card mạng được thử đều còn
tốt, trong trường hợp ngược lại-ít nhất một trong hai card mạng bị hỏng. Tuy nhiên nhân viên kiểm định lại không
phải là người chu đáo và cẩn thận, do vậy, anh ta chọn các cặp card mạng để tiến hành K phép thử không theo một

trình tự nào, thậm chí có những card mạng được thử đi thử lại nhiều lần. Rất may là anh ta vẫn còn ghi lại kết quả cụ
thể của từng phép thử. Dung set of byte
Yêu cầu: Theo kết quả của K phép kiểm tra (0≤K≤15000) hãy cho biết từng card mạng được dự trữ trong kho
là tốt, hỏng hay không xác định được trạng thái của nó.
Bài 4: FIBONACCI (7,5 điểm)
Dãy số Fibonacci được định nghĩa như sau:
U
1
= U
2
= 1; U
n+1
= U
n
+ U
n-1
(với mọi số nguyên dương n, n > 1).
Như vậy, dãy số Fibonacci có dạng sau: 1, 1, 2, 3, 5, 8, 13, 21, 34,…
Với một số tự nhiên x bất kỳ khác 0 ta có thể phân tích thành tổng các số Fibonacci khác
nhau (số số hạng của tổng có thể là từ 1 trở lên). Chẳng hạn x = 9, khi đó, ta có:
9 = 1 + 8 hoặc 9 = 1 + 3 + 5
Trong hai cách phân tích trên thì cách thứ hai có số số hạng nhiều nhất (3 số hạng).
Yêu cầu: Cho trước một số nguyên dương x (x <= 10000). Hãy cho biết, nếu biểu diễn x thành tổng
của các số Fibonacci khác nhau thì số số hạng nhiều nhất của một tổng là bao nhiêu?
Bài 2(7 điểm) - Biểu thức zero. Btzero.pas chua xong
Cho một số tự nhiên N ≤ 9. Dãy số được tạo thành gồm các chữ số từ 1 đến N theo thứ tự đó.
Hãy điền vào các dấu + , - , hoặc là không điền dấu nào cả để tạo thành biểu thức có kết quả
thu được bằng 0. Hãy viết chương trình tìm tất cả các khả năng có thể.
Ví dụ
BAI2.INP BAI2.OUT

7 6 1-2-3-4-5+6+7 = 0
1-2+3+4-5+6-7 = 0
1-23-45+67 = 0
1-23+4+5+6+7 = 0
1+2-3-4+5+6-7 = 0
1+2-3+4-5-6+7 = 0
Câu 3: (3,5 điểm) Dãy con chung dài nhất
Cho dãy số nguyên A gồm N phần tử a
1
, a
2
, , a
N

và dãy số nguyên B gồm M phần tử b
1
,
b
2
, , b
M
. Các phần tử trong một dãy số có giá trị khác nhau từng đôi một.
Dãy C được gọi là dãy con của dãy A nếu dãy C nhận được từ dãy A bằng cách xóa đi
một số phần tử và giữ nguyên thứ tự của các phần tử còn lại.
Nếu dãy C là dãy con của dãy A và cũng là dãy con của dãy B thì dãy C được gọi là dãy
con chung của hai dãy A và B.
Yêu cầu: Hãy tìm dãy C là dãy con chung của hai dãy A và B sao cho số lượng phần tử của
dãy C là lớn nhất.
DAYCON.INP DAYCON.OUT
6

9 3 1 12 6 15
5
3 12 7 6 15
4
3 12 6 15
2 4 5 6
1 2 4 5
Bài 3( 7 điểm) - Tam giác số
Hình sau mô tả một tam giác số có số hàng N=5:
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Đi từ đỉnh (số 7) đến đáy tam giác bằng một đường gấp khúc, mỗi bước chỉ được đi từ
số ở hàng trên xuống một trong hai số đứng kề bên phải hay bên trái ở hàng dưới, và cộng
các số trên đường đi lại ta được một tổng.
Ví dụ: đường đi 7 8 1 4 6 có tổng là S=26, đường đi 7 3 1 7 5 có tổng là S=23
Trong hình trên, tổng Smax=30 theo đường đi 7 3 8 7 5 là tổng lớn nhất trong tất cả các tổng.
Nhiệm vụ của bạn là viết chương trình nhận dữ liệu vào là một tam giác số chứa trong
text file BAI3.INP và đưa ra kết quả là giá trị của tổng Smax.
Ví dụ:
BAI3.INP BAI3.OUT
5 30
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Bài 3: (7 điểm) CHỌN PHˆN THƯŠNG

Trong kỳ thi học sinh giỏi môn Tin học, em là người đạt giải đặc biệt. Ban tổ chức cho phép em chọn các phần
thưởng cho mình. Các phần thưởng xếp thành một dãy được đánh số từ 1 đến N (0 ≤ N ≤ 10000), phần thưởng thứ i có
giá trị là a
i
(1 ≤ a
i
≤ 100). Em được phép chọn các phần thưởng cho mình theo nguyên tắc không chọn 3 phần thưởng
liên tiếp nhau trong dãy.
Viết chương trình để máy tính hướng dẫn em chọn các phần thưởng sao cho tổng giá trị của các phần thưởng
nhận được là lớn nhất.
Ví dụ:
Bài 2: (7 điểm) TỔNG CÁC SỐ FIBONACI tongfibo.pas
Dãy Fibonaci là dãy gồm các số: 1, 1, 2, 3, 5, 8, được xác định bởi công thức sau:
F
1
=1, F
2
=1, F
i
=F
i-1
+F
i-2
với i>2.
Em hãy biểu diễn một số tự nhiên N thành tổng của ít nhất các số Fibonaci khác nhau.
Ví dụ:
FIBO.INP FIBO.OUT
129 129 = 89 + 34 + 5 + 1
PTHUONG.INP PTHUONG.OUT
5

6
9
1
3
5
23
1 2 4 5
PTHUONG.INP PTHUONG.OUT
7
6
9
1
3
5
10
4
32
1 2 4 6 7
Tam giac so 2
Bài 1: hoán vị thuận thế Tên chương trình: PERMUTE.PAS
Cho a = (a
1
, a
2
, , a
N
) là một hoán vị của dãy số tự nhiên 1 N. Ta xây dựng dãy b=(b
1
,b
2

, ,b
N
) và gọi là thuận thế
của hoán vị a như sau:
Với mọi i =1 N, b
i
là số lượng các phần tử nhỏ thua a
i
và đứng trước a
i
Ví dụ: N =7 ; a=(6,1,3,5,7,4,2) ta có thuận thế của a là b=(0,0,1,2,4,2,1)
a. Cho N và một hoán vị a. Hãy tìm thuận thế của a.
b. Cho N và một thuận thế b. Hãy tìm hoán vị sinh ra thuận thế b.
Ví dụ:
Nhập N = 9
a = 2 1 7 6 5 4 3 8 9
Thuận thế của a là : 0 0 2 2 2 2 2 7 8
Nhập N = 9
b = 0 1 1 2 4 1 5 5 8
Hoán vị sinh ra thuận thế b: 1 5 3 4 8 2 7 6 9
Bài 4 : Cửa sổ Tên chương trình: WINDOWS.PAS
Trong khi sử dụng một số hệ điều hành phổ biến hiện nay, chúng ta thường mở một vài cửa sổ. Mỗi cửa sổ là
một hình chữ nhật chứa các hình vuông nhỏ (có kích thước 1x1).
Các cửa sổ đã mở phụ thuộc vào vị trí và kích thước của nó, có thể một phần hoặc toàn bộ bao trùm lên những cửa sổ
đã được mở sớm hơn.
Chúng ta có thể đóng cửa sổ bằng con chuột máy tính, nếu chúng ta kích chuột vào hình vuông nhỏ phía trên
bên phải, trong giây lát cửa sổ sẽ được đóng. Hình vuông nhỏ của cửa sổ sẽ hiển thị rõ ràng nếu như không có hình
vuông nào được mở sau nó mà chưa đóng.
Viết chương xác định số lần kích chuột nhỏ nhất để đóng cửa sổ đã được mở đầu tiên.
Ví dụ:

windows.inp windows.inp windows.inp
3
3 1 6 4
1 2 4 6
2 3 5 5
3
4 1 6 3
2 2 5 5
1 4 3 6
3
3 3 4 4
1 1 2 2
5 5 6 6
windows.out windows.out windows.out
3 2 1
BÀI 2: Số chung lớn nhất
Cho 2 xâu: X = x
1
x
2
xM. (Với xi là các kí tự số từ ‘0’ đến ‘9’)
Y = y
1
y
2
yN.( Với yi là các kí tự số từ ‘0’ đến ‘9’)(M, N <= 250)
Ta gọi: Z = z
1
z
2

zk là xâu chung của 2 xâu X, Y nếu xâu Z nhận đợc từ xâu X bằng cách xoá đi một số kí tự
và cũng nhận được từ xâu Y bằng cách xoá đi một số kí tự.
Yêu cầu: Tìm một xâu chung của 2 xâu X, Y sao cho xâu nhận được tạo thành một số lớn nhất có thể được.
Ví dụ:
String.inp String.out
19012304
034012
34
BAI 1 (7,0 điểm) đờng hầm
Có N hòn đảo đánh số từ 1 đến N. Một số hòn đảo đã có đờng hầm thông với nhau. Ngời ta muốn
xây dựng thêm một số đờng hầm sao cho có thể đi lại giữa 2 hòn đảo bất kỳ bằng đờng hầm. Biết rằng
đờng hầm nối các đảo là đờng đi 2 chiều, hãy lập trình tính số đờng hầm ít nhất cần xây dựng thêm.
Ví dụ:
HAM.INP HAM.OUT
9
1 3
1 5
1 6
2 7
4 8
8 9
2
Tinh so nhom khac nhau thoi
Bài 2 ( 7,0 điểm ) Xây kè
Một bản đồ hình chữ nhật mô tả một số diện tích hồ nớc thiên nhiên đợc chia lới ô vuông sao cho
mỗi ô của lới chỉ đợc xem nh có 2 trạng thái: hoặc là diện tích hồ, hoặc không phải. Ngời ta muốn xây
kè đá xung quanh các hồ này. Mỗi cạnh của lới đợc xây kè nếu nó là cạnh chung của 2 ô khác trạng thái (các
cạnh thuộc biên bản đồ không đợc tính). Lập trình tính tổng chiều dài của kè (theo đơn vị cạnh ô lới).
Ví dụ: Bản đồ (các ô có mầu xám là diện tích hồ, các cạnh đậm là kè) có các file vào, ra tơng ứng nh
sau:


Bi 3 (6 im) S t nhiờn liờn tip
Cho trc s t nhiờn N.
Yờu cu: Vit chng trỡnh cho bit cú th biu din N thnh tng ca hai hoc nhiu s t nhiờn
liờn tip hay khụng?
Dũng th nht ghi sụ K l s cỏch biu din tỡm thy (ghi 0 nu nh khụng tỡm c cỏch biu
din).
Nu K>0 thỡ K dũng tip theo, mi dũng ghi s s hng, tip sau l s hng u tiờn trong biu din
nhn c (xem vớ d).
Vớ d:
STNLT.INP STNLT.OUT
1671 3
2 835
3 556
6 276.
Cho i chay t 2->n-1.
If i chn
If n mod i=(i div 2) then ỳng
If i l
If n mod i=0 then ỳng.
KE.INP KE.OUT
6 11
0 0 0 1 1 0 0 0 0 0 0
0 0 1 1 1 1 0 1 0 0 0
0 0 0 1 0 0 1 1 1 1 0
0 1 0 0 0 1 1 0 1 1 0
0 1 1 0 0 0 1 1 1 0 0
0 0 0 0 0 0 0 1 1 1 1
43
Tinh tung hang

ngang doc co bao
nhieu ke
Bài 3. (7 điểm) XÓA SỐ
Trong trò chơi xóa số, cho trước hai số nguyên dương N (1<N<=109) và (1<K<9)
Yêu cầu: Xóa bỏ K chữ số của số N để nhận được số mới M (không thay đổi thứ tự các chữ số) thỏa mãn điều kiện
sau:
M là lớn nhất. tim k so lớn nhat trong so đo
M có tổng các chữ số nhỏ nhất. tim cac chu so nho.
Tổng các chữ số của M có chữ số cuối cùng lớn nhất. chac dung tam giac so.
Vi du:
XS.INP XS.OUT
58816 2 886 512 586
BÀI 2: KIM TỰ THÁP. Ktuthap.pas
Các nhà khoa học lịch sử muốn tìm một khu đất để xây dựng một kiến trúc mang hình kim tự tháp.
Với ý tưởng là ngôi vườn mà công trình kiến trúc được xây dựng cũng phải có hình tam giác. Chính quyền
địa phương nhiều nơi đã tìm kiếm rất vất vả, cuối cùng cũng chọn ra được một số khu vườn như thế. Dưới
đây là một trong các khu vườn có hình dáng cần tìm:
Tuy nhiên trên các khuôn viên lại có một số công trình, cây cối, … đã có trước đây cần phải duy trì.
Họ phải lại bắt đầu tính toán để tìm ra được một ô đất cũng có hình tam giác mà diện tích của nó là lớn nhất.
Hình vẽ trên cho ta thấy các ô có màu đen chính là các công trình đã có; các ô trắng là đất trống và đường
viền đậm là khu vực được đánh dấu để xây dựng.
Yêu cầu: Hãy lập trình tìm ra khu đất có diện tích lớn nhất theo yêu cầu của các nhà khoa học đã
đưa ra.
Dữ liệu vào Dữ liệu ra
5
#-## #
#-
#-
-#-
-

Dien tich lon nhat: 9
BÀI 1: DÃY CON dchiahet.pas
Ta gọi một dãy chia hết hoàn toàn là dãy a
1
, a
2
, …, a
N
với a
j
chia hết cho a
i
với i<j. Một dãy con của một dãy
là một dãy được thiết lập bằng cách xoá một số phần tử nào đó trong dãy.
Ví dụ: 3, 7, 11, 3 là một dãy con của dãy 6, 3, 11, 5, 7, 4, 3, 11, 5, 3 nhưng 3, 3, 7 không phải là một
dãy con của dãy 6, 3, 11, 5, 7, 4, 3, 11, 5, 3 và 3, 15, 60, 720 là một dãy chia hết.
Yêu cầu: Cho một dãy các số nguyên, tìm dãy con chia hết hoàn toàn có độ dài lớn nhất trong dãy đã cho.
Ví dụ:
SEQ.INP SEQ.OUT
9
2 3 7 8 14 39 145 76 320
3
Cho i chay tu 1->n do
Cho j chay i+1->n do. Neu a[j] chia het a[i] then a[j]:=a[j]+a[i].
viet ra: (vi tri tai i) choi i+1 chay tu 1 den n. neu a[j] chia het cho a[i] va (so cuoi cung chia het cho
a[j]) thi viet ra
Câu 2 :¬ (4 điểm): Cho một bàn cờ vuông 8 x 8 trên đó cho trước một số quân cờ.
Vị trí các quân cờ ứng với số 1, các ô trống ứng với số 0. Ví dụ hình vẽ sau đây là một bàn
cờ như vậy:
01010100

10011001
10100011
00010100
00100000
01010001
10011000
01000110
Hãy viết chương trình PASCAL tính số quân cờ liên tục lớn nhất nằm trên một đườc thẳng trên bàn
cờ. Đường thẳng ở đây có thể là đường thẳng đứng, đường nằm ngang hoặc đường chéo. Kết quả
thể hiện trên màn hình.
Với ví dụ trên chương trình phải in trên màn hình kết quả là 4.
Câu 3 (7 điểm): Du lịch Bạc Liêu.
Tỉnh Bạc Liêu có n địa điểm du lịch và được đánh số từ 1 đến n. Biết rằng đường đi giữa hai địa
điểm bất kì (nếu có) đều là đường đi hai chiều. Sơ đồ mạng lưới giao thông của n địa điểm này cho bởi ma
trận a[i,j], trong đó:
a[i,j] là độ dài đường đi từ địa điểm i đến địa điểm j (a[i,j] là số nguyên dương và a[i,j] ≤ 100).
a[i,j] = 0 nếu không có đường đi từ địa điểm i đến j.
a[i,j] = a[j,i]
a[i,i] = 0
Một đoàn du lịch xuất phát từ địa điểm P và muốn đến địa điểm Q, nhưng họ không biết nên đi theo đường
nào là ngắn nhất để tiết kiệm chi phí và thời gian. Bạn là lập trình viên, hãy giúp họ giải quyết bài toán trên
hoặc đưa ra thông báo không tồn tại đường đi giữa P và Q.
DULICH.INP
DULICH.OUT
4 1 4
0 3 0 10
3 0 1 0
0 1 0 2
10 0 2 0
6

1 2 3 4
Tam giac so 2
Câu 3: (4 điểm)
Để đảm bảo bí mật, người ta tiến hành mã hóa dữ liệu gốc theo một qui tắc cho trước rồi tiến hành
giải mã để có được dữ liệu ban đầu. Dưới đây là một phương pháp dùng để mã hóa dữ liệu dạng nhị phân:
Với một xâu nhị phân B, mã hóa của nó là một mảng A gồm các số nguyên không âm sao cho phần
tử đầu tiên A[1] = 0 hoặc 1 tùy theo kí tự đầu tiên của B là 0 hay 1.
Nếu A[1] = 0 thì từ trái sang phải của xâu B, lần lượt A[2] bằng số kí tự 0 liên tiếp, A[3] bằng số kí
tự 1 liên tiếp, A[4] bằng số kí tự 0 liên tiếp… cho đến hết xâu B.
Nếu A[1] = 1 thì từ trái sang phải của xâu B, lần lượt A[2] bằng số kí tự 1 liên tiếp, A[3] bằng số kí
tự 0 liên tiếp, A[4] bằng số kí tự 1 liên tiếp… cho đến hết xâu B.
Viết chương trình thực hiện các yêu cầu sau:
Đọc từ file văn bản MH1.TXT chứa các xâu nhị phân B có độ dài không quá 30 kí tự (mỗi xâu được
viết trên một dòng) rồi ghi kết quả mã hóa của các xâu B là các mảng A tương ứng ra file MH1.OUT, hai
phần tử liên tiếp của mảng ghi cách nhau một dấu cách.
Đọc từ file MH2.TXT chứa các mảng A có phần tử đầu tiên là 0 hoặc 1 là dạng mã hóa của các xâu
nhị phân B. Hãy ghi kết quả giải mã của các mảng A tương ứng ra file MH2.OUT.
Bài 3: RECTANGLE (7,5 điểm)
Trên giấy kẻ ô khổ N x N có vẽ một số hình chữ nhật. Mỗi hình chữ nhật được tạo ra từ các ô
nguyên vẹn, các hình chữ nhật khác nhau không chồng lên nhau và không tiếp xúc nhau (Ví dụ :
Hình vẽ dưới đây có 4 hình chữ nhật).

Cho mảng A có kích thước N x N, trong đó A[i,j]=1 nếu ô [i,j] thuộc một hình chữ nhật nào
đó, còn A[i,j] =0 trong trường hợp ngược lại.
Hãy viết chương trình xác định số các hình chữ nhật có trong bảng.
Ví dụ:
RECT.INP RECT.OUT
4
0 0 0 0
0 0 0 0

0 0 0 0
0 0 0 0
0
Neu a[i,j]=1 and a[i+1,j+1]=0 AND
a[i,j+1]=0 and a[i+1,j]
then inc(dem);
7
1 0 0 0 0 0 0
0 0 1 1 1 0 0
1 0 1 1 1 0 0
1 0 1 1 1 0 0
0 0 0 0 0 0 0
0 0 0 0 1 1 1
0 0 0 0 1 1 1
4
Bài 3. Buôn bán (7 điểm)
Công ty BB là công ty kinh doanh hàng tiêu dùng. Công ty BB mua hàng từ các đại lý ở thành phố
HN vận chuyển bằng ô tô về phân phối cho các cửa hàng tại thành phố NĐ để bán phục vụ người tiêu dùng.
Mỗi chuyến hàng chỉ chở được khối lượng m, với chi phí cho cả chuyến hàng là c. Có n mặt hàng, mặt hàng
i có biết khối lượng pi, giá mua qi và giá bán ri. Số lượng các mặt hàng có đủ để cho công ty mua về nhưng
tổng khối lượng của tất cả mặt hàng mua về không quá m. L là lợi nhuận thu được của một chuyến hàng
được xác định: L = TB – TM – c
Trong đó TB là tổng số tiền bán của tất cả mặt hàng, TM là tổng số tiền mua của tất cả mặt hàng.
Yêu cầu: cho thông tin về các mặt hàng, hãy giúp công ty lập phương án mua các mặt hàng sao cho
L lớn nhất.
Dữ liệu vào từ tệp BB.inp
- Dòng đầu ghi 3 số n, m và c (n, m, c nguyên dương nhở hơn 6001)
- n dòng tiếp theo, dòng thứ i ghi 3 số pi, qi, ri lần lượt là khối lượng, giá mua và giá bán của mặt hàng i (pi,
qi, ri đều nguyên dương và nhỏ hơn 101).
Kết quả đưa ra tệp BB.out

- Dòng 1 ghi số L tìm được
- Nếu L > 0 thì đưa ra phương án mua hàng trong các dòng tiếp theo, mỗi dòng chứa hai số vi, si thể hiện
mua hàng vi với số lượng si.
BB.inp BB.out
3 10 5
3 1 8
5 5 16
1 1 3
18
1 3
3 1
BÀI 2 (6,0 điểm). Tập số đặc biệt
Xét một tập hợp A gồm các số tự nhiên được xác định như sau:
• 1 thuộc A;
• Nếu k thuộc A thì 2k+1 và 3k+1 cũng thuộc A.
Cho số tự nhiên N (1<=N<=1000). Em hãy chỉ ra N phần tử đầu tiên của tập A theo thứ tự tăng dần.
Ví dụ:
Bài 1 (7 điểm) Tạo biểu thức
Cho một xâu S = ’123456789’.
Yêu cầu: tìm cách chèn vào S các dấu '+' hoặc '-' để thu được số M cho trước (nếu có thể).
Ví dụ:
BIEUTHUC.INP BIEUTHUC.OUT
185
Tam giac so 2
5
123-4+56-7+8+9
123+4-5-6+78-9
1-2+34+56+7+89
1+234-56+7+8-9
-1+234-56+7-8+9

Bài 1:
Nhập vào hai số tự nhiên n và m. Hãy in ra chu kỳ của phân số n/m
Ví dụ: 1/7 có chu kỳ là (142857).
Đề : Viết chương trình liệt kê tất cả các hoán vị của tập {1, 2, , n} (lietketc.pas)
Bài 1. (6 điểm) Phần thưởng
Tuấn là người thắng cuộc trong một cuộc thi “Tìm hiểu kiến thức vũ trụ” và được nhận các phần thưởng do
công ty XYZ tài trợ. Các phần thưởng được bố trí trên một bảng vuông kích thước n

n có dạng một lưới ô vuông
kích thước đơn vị. Các dòng của bảng được đánh số từ 1 đến n, từ trên xuống dưới và các cột của bảng được đánh
số từ 1 đến n, từ trái qua phải. Ô nằm trên giao của dòng i và cột j được gọi là ô (i, j) và trên ô đó chứa một món
quà có giá trị là a
ij
(1

i, j

n).
Để nhận phần thưởng, Tuấn được phép chọn một hình vuông kích thước k

k chiếm trọn
một số

ô của bảng và nhận tất cả các phần quà trong các ô nằm trong hình vuông đó.
Ví dụ:
BONUS.INP BONUS.OUT
4 3 86
1 9 1 1
9 9 9 9
1 9 9 9

1 9 9 14
Ràng buộc: 50% số tests ứng với 50% số điểm của bài có n ≤ 100.
BAI2.INP BAI2.OUT
3
6
123
28
2
Bài 2. (7 điểm) Hình chữ nhật bốn màu
Trên mặt phẳng toạ độ Đề các vuông góc Oxy cho n điểm phân biệt Ai(xi, yi), i = 1, 2, , n. Mỗi
điểm Ai được tô bởi màu ci {1, 2, 3, 4}. Ta gọi hình chữ nhật bốn màu là hình chữ nhật thoả mãn hai 
điều kiện sau:
- Bốn đỉnh của hình chữ nhật là bốn điểm trong n điểm đã cho và được tô bởi bốn màu khác nhau;
- Các cạnh của hình chữ nhật song song với một trong hai trục toạ độ.
Yêu cầu: Cho biết toạ độ và màu của n điểm, hãy đếm số lượng hình chữ nhật bốn màu.
Ví dụ:
COLOREC.INP COLOREC.OUT
7 2
Dung for Hoac Dung
tinh dien tich hcns
Cho chay tu so am sang
duong binh thuong.
Hcn4mau.pas
0 0 1
0 1 4
2 1 2
2 -1 3
0 -1 1
-1 -1 4
-1 1 1

Ràng buộc: 50% số tests ứng với 50% số điểm của bài có 4 ≤ n ≤ 100.
Bài

2 (5.0 điểm) Số hoàn hảo
Trong một buổi học toán Bờm được học khái niệm về số có tính chất đặc biệt. Số

hoàn hảo là
số có tổng các ước trừ nó ra thì bằng chính nó. Ví dụ: Số 6 là là số hoàn hảo

vì nó có tổng các ước 1 +
2 + 3 = 6, số 8 không phải là số hoàn hảo vì 1 + 2 + 4 = 7 ≠ 8.

Yêu cầu: Cho dãy số a
1
, a
2
, a
n
. Hãy
giúp Bờm đếm xem trong dãy có bao nhiêu số có

tổng các chữ số là số hoàn hảo.


dụ:
Bài 1 (7 điểm): Thỏ và cà rốt
Trong một mảnh vườn hình chữ nhật có các cạnh M, N nguyên dương người ta trồng cà rốt trong những ô
vuông đơn vị có cạnh 1. Trong mảnh vườn này có một chú thỏ ở trong một cái hang chiếm diện tích một ô vuông đơn
vị. Chú thỏ cần xác định miền người ta đã trồng Cà rốt có diện tích lớn nhất trong mảnh vường để đào một đường hầm
ngắn nhất đi qua các ô chung cạnh từ hang đến miền diện tích lớn nhất đó. (Miền được hiểu là hình chữ nhật gồm một

hoặc nhiều ô vuông đơn vị chung cạnh. Hai miền khác nhau không có một cạnh ô vuông nào chung).
Ví dụ:
Bài

5:

(3.0 điểm) Diện tích miền phủ
CAROT.INP
6 6 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 1 1
1 1 1 0 0 0
CAROT.OUT
4
1 1
1 2
1 3
1 4
1 5
Mt trng hc X cn lm mỏi che nm ngang. Trng hc cú N tm bt hỡnh

ch nht, cỏc
tm bt lm mỏi che cú th chng lờn nhau. Tớnh din tớch b che ph.
Vớ

d:
BAI5.INP BAI5.OUT

3 20
0 5 4 1
2 4 6 2
0 5 4 1
Bài 2. Milking Cows
Ba bác nông dân thức dậy vào lúc 5 giờ sáng và chuẩn bị công việc của mình: mỗi bác phải vắt sữa một con bò của
mình. Bác nông dân đầu tiên bắt đầu vắt sữa con bò của mình tại thời điểm 300 (tính bằng giây sau 5 giờ) và
kết thúc tại thời điểm 1000. Bác nông dân thứ hai bắt đầu tại thời điểm 700 và kết thúc tại thời điểm 1200. Bác
nông dân thứ ba bắt đầu tại thời điểm 1500 và kết thúc tại thời điểm 2100. Thời gian liên tục dài nhất mà tại thời
điểm bất kỳ nào trong thời gian đó luôn có ít nhất một bác nông dân vắt sữa là 900 giây (từ thời điểm 300 đến
1200). Thời gian liên tục dài nhất mà bất kỳ thời điểm nào trong thời gian này đều không có sự vắt sữa của bác
nông dân nào là 300 giây (từ thời điểm 1200 đến 1500; chú ý rằng ta chỉ tính giữa các thời điểm bắt đầu và
kết thúc của tất cả các sự vắt sữa, không tính khoảng thời gian từ 5 giờ đến thời điểm vắt sữa sớm nhất và
khoảng thời gian sau thời điểm vắt sữa muộn nhất).
Nhiệm vụ của bạn là viết một chơng trình đọc danh sách các thời điểm bắt đầu và kết thúc của N
)00051( N
bác nông dân vắt sữa N con bò và tính (theo giây):
Khoảng thời gian dài nhất mà có ít nhất một con bò đợc vắt sữa.
Khoảng thời gian dài nhất mà không có con bò nào đợc vắt sữa.
Kết quả: File ra gồm hai dòng: dòng thứ nhất chứa một số nguyên là khoảng thời gian liên tục dài nhất mà có ít
nhất một con bò đợc vắt sữa; Dòng thứ hai chứa một số nguyên là khoảng thời gian liên tục dài nhất mà không có con
bò nào đợc vắt sữa nh mô tả ở trên.
Ví dụ:
MIL.IN MIL.OUT
3
300 1000
700 1200
1500 2100
900
300

Bài 1. Code
An và Bình cần gửi cho nhau những thông báo bí mật chỉ gồm các chữ cái tiếng Anh viết hoa và họ đang thảo
luận cách để mã hoá các thông báo của họ:
An: Chúng mình hãy sử dụng một cách mã hoá đơn giản là: A có mã số là 1, B có mã số là 2 và cứ tiếp
tục nh vậy cho đến Z có mã số là 26.
Bình: Đó là mã hoá ngớ ngẩn, An ạ. Giả sử mình gửi cho bạn từ BEAN và mã hoá là 25114. Bạn có thể giải
mã từ đó theo nhiều cách khác nhau!
An: Chắc chắn là nh vậy, nhng bạn sẽ tìm đợc bao nhiêu từ? Ngoài từ BEAN, bạn có thể tìm đợc các từ
BEAAD, YAAD, YAN, YKD và BEKD. Mình nghĩ là bạn có thể tìm ra từ giải mã đúng. ồ, mà tại
sao bạn lại gửi cho mình từ BEAN vậy?
Bình: Có thể ví dụ đó không hay, nhng mình đã tìm ra đợc một xâu dài 500 ký tự và có rất nhiều cách
giải mã khác nhau và với nhiều cách giải mã nh vậy, bạn có thể tìm đợc ít nhất hai cách giải mã khác nhau
tạo ra thông báo có nghĩa.
An: Có bao nhiêu cách giải mã khác nhau?
Bình: Hàng nghìn!
Vì một vài lý do, những lý lẽ của Bình vẫn không thuyết phục đợc An, vì vậy An cần một chơng xác định xem có
bao nhiêu cách giải mã đối với một xâu đã mã hoá theo kiểu của An.
Ví dụ:
COD.IN COD.OUT
25114 6
1111111111 89
3333333333 1
Bi 9. Hai xõu ký t c gi l ANAGRAM ca nhau nu xõu ny cú th to c bng cỏch hoỏn v cỏc
ký t ca xõu kia, t n c hiu l xõu ký t vit lin nhau khụng cha du cỏch.
Cho mt tp vn bn bt k cú tờn VANBAN.TXT, hóy lp trỡnh hin lờn mn hỡnh nhng nhúm t l
ANAGRAM ca nhau bng cỏch xột cỏc t trong tp vn bn ó cho.
Sap xep xau 1 voi xau hai roi xem hai xau co bang nhau hay ko.
Bài 3. Investment
Trớc đây An không biết mình có một ông chú, cho tới khi An nhận đợc một bức th của công chứng viên. Anh
ta biết rằng ông chú quá cố của mình đã kiếm đợc rất nhiều tiền ở một nơi nào đó ở Nam Mỹ và An là ngời thừa

kế duy nhất.
Hiện tại An không cần số tiền nhiều nh vậy. Nhng anh ta có một ý tởng hay là gửi số tiền đó ở ngân hàng
và nó sẽ sinh lời cho tới khi anh ta về hu. Ngân hàng có một số loại trái phiếu. Các trái phiếu này có giá trị cố định
và có số tiền lãi suất cố định hàng năm đợc trả cho ngời gửi vào cuối mỗi năm. Các trái phiếu này không có kỳ hạn
cố định. Các trái phiếu này có nhiều loại khác nhau. Trái phiếu lớn cho giá trị càng lớn. An nhận ra rằng bộ trái
phiếu tốt nhất để mua không dễ dàng để tính. Hơn nữa, sau vài năm số vốn của anh ta lớn lên và lại phải tính
toán lại cách mua bộ trái phiếu tốt nhất.
Giả sử có các trái phiếu sau ($ là ký hiệu đơn vị tiền tệ đô la):
Giá trị Lãi suất hàng năm
4000$ 400$
3000$ 250$
Với số vốn 10000$ anh ta chỉ có thể mua hai trái phiếu 4000$ và đợc lãi suất hàng năm là 800$. Mua hai trái phiếu
3000$ và một trái phiếu 4000$ là cách tốt nhất, bởi vì nó cho lãi suất hàng năm là 900$. Sau hai năm số vốn sẽ tăng
lên là 11800$ và thật dễ hiểu khi bán đi một trái phiếu 3000$ và mua một trái phiếu 4000$, vì vậy lãi suất hàng
năm bây giờ là 1050$. Đây chính là vấn đề rắc rối: ngân hàng không chịu trách nhiệm cho việc mua và bán trái
phiếu, vì vậy An phải tự lên một kế hoạch mua và bán trái phiếu. Năm tới số tổng số tiền sẽ là 12850$, số tiền này
cho phép mua ba trái phiếu 4000$ và cho lãi suất hàng năm là 1200$.
Bài toán của bạn là: cho trớc một lợng tiền ban đầu, số năm gửi và một tập các giá trị và lãi suất của các trái phiếu,
hãy tính số tiền lớn nhất có thể trong thời gian gửi cho trớc khi sử dụng kế hoạch mua, bán trái phiếu tốt nhất.
Ví dụ:
INV.IN INV.OUT
10000 4
2
4000 400
3000 250
14050
Bi 1. (10 im)
Mt ln trong chng trỡnh Chic nún diu k, phn chi dnh cho khỏn gi, thay vỡ
oỏn ch nh mi khi, ngi dn chng trỡnh t mỡnh quay chic nún v cho hin lờn mn hỡnh
trc mt khỏn gi trong trng quay cỏc s trong cỏc ụ m kim ch th ln lt i qua. Chic nún

quay ỳng mt s nguyờn vũng, nờn trong dóy s hin lờn mn hỡnh, s cui cựng trựng vi s u
tiờn. Sau ú, ngi dn chng trỡnh mi mt khỏn gi cui trng quay (ch nhỡn thy mn hỡnh
m khụng nhỡn thy chic nún) cho bit chic nún cú ti thiu bao nhiờu ụ?
Yờu cu: Hóy tr li cõu hi ca ngi dn chng trỡnh. chiecnon.pas
Vớ d:
CNDK.INP CNDK.OUT
13
5 3 1 3 5 2 5 3 1 3 5 2 5
6 Cho i chay tu 1 n do. Kt tra cac so tu
1 den i co bang cac so tu i+1 den i+i ko.
1. Bàn cờ tìm vị trí của 8 con hậu.
2. In ra quảng cáo
3. Vòng tròn nguyên tố.( 1 6 5 2 3 4) đồng hồ. Bắt đầu từ số 1 cộng với số tiếp theo ra số
nguyên tố.
4. Cho con mã ở vị trí 1:1. Tìm đường đi của con mã để con mã đi hết bàn cờ.
5. Cho con mã và con tốt. Tìm đường đi ngắn nhất của con mã để ăn được con tốt đó.
6. Giả thuyết là số nguyên dương. Số M là tổng của N với các chữ số của nó. N được
gọi là nguồn của M. Vậy nguôn của 256 là 245. Có những số ko co nguồn và lại có
những so có nhiều nguồn. VD, o 216 co 2 nguồn la 198 và 207.
Cho M (ko qua 100 chữ số) hãy tìm số nguồn nhỏ nhất của nó. Nếu Mko có thì đưa ra
số 0.
7. Tìm vị trí con mã. Tọa độ của con mã được kí hiệu (x,y). Trong đó x là chỉ số hàng, y
là chỉ số cột. Một con mã có thể di chuyển đến 8 vị trí để ăn một quân cờ. Người ta nói
nó khống chế được một quân cờ nếu nó ăn được một quân cờ. Cho trước tọa độ các
con tốt trên bàn cờ. Hãy xác định vị trí con mã có thể khống chế được nhiều quân cờ
nhất.
8. Cay fi bonaci
9. Tìm số rắn hai đầu.
10.Cho hai so 8 va 1 (a va b). Tìm số để thêm hai số a và b vào đầu và cuối thì số đó tăng
lên 99 lan.

8 1 9 9*99=891
1 4 11236 11236*99=111236
8 5 8988764045 8988764045*99=889887640455
Bài 2: TÍNH DIỆN TÍCH tên file chương trình HCN.PAS
Trên mặt phẳng tọa độ cho N (N

10 000) hình chữ nhật với các cạnh song song với các trục tọa độ. Các hình chữ
nhật được đánh số từ 1 tới N. Hình chữ nhật thứ i được cho bởi toạ độ đỉnh trái dưới (x
i1 ,
y
i1
) và tọa độ đỉnh phải trên
(x
i2
, y
i2
). Các số x
i1 ,
y
i1,
x
i2
, y
i2
là các số nguyên trong phạm vi từ -100 đến 100.
Hãy lập trình tính:
1. Diện tích của phần mặt phẳng mà N hình chữ nhật này phủ.
2. Tính diện tích phần chung của N hình chữ nhật này.
Ví dụ:
HCN.INP

2
0 0 1 1
-1 -1 1 1
Bài 1: TỔNG LỚN NHẤT tên chương trình: SUM.PAS
Cho một bảng A gồm N x N số nguyên (N

100), các dòng được đánh số trên xuống dưới bắt đầu từ 1, các cột được
đánh số từ trái qua phải cũng bắt đầu từ 1. Mỗi số trong bảng có giá trị tuyệt đối không vượt quá 10000. Đường chéo
chính của bảng là đường thẳng nối hai ô (1,1) và (N,N). Như vậy trên bảng có 2N-1 đuờng chéo song song với đường
chéo chính.
Bài toán: Hãy tìm đường chéo song song với đường chéo chính có tổng các phần tử trên đường chéo đó là lớn nhất.
1 2 4 3
3 4 2 5
2 5 4 3
4 3 2 5
Ví dụ: với bảng A như hình vẽ, đường chéo chính chính là đường chéo có tổng lớn nhất (bằng 14), các file dữ liệu
vào/ra lần lượt có nội dung như sau:
SUM.INP SUM.OUT
4
1 2 4 3
3 4 2 5
2 5 4 3
4 3 2 5
14
Đường chéo

×