Tải bản đầy đủ (.pdf) (79 trang)

Tuyển tập 22 đề thi học sinh giỏi môn Tin học lớp 9 (có đáp án)

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 (11.08 MB, 79 trang )

































1
SỞ GIÁO DỤC VÀ ĐÀO TẠO
KIÊN GIANG
KỲ THI CHỌN HỌC SINH GIỎI VÒNG TỈNH LỚP 9 THCS
NĂM HỌC 2012-2013

ĐÁP ÁN CHÍNH THỨC

MÔN THI: TIN HỌC
Thời gian làm bài: 150 phút (không kể thời gian giao đề)
(Đáp án gồm 02 trang)
Ngày thi: 01/3/2013




Bài 1: (5.0 điểm)

Test 1: N=18
18=3+4+5+6
18=5+6+7
1.5 điểm
Test 2: N=6 6=1+2+3 1.0 điểm
Test 3: N=16 Khong ton tai day so 1.0 điểm

Test 4: N=21
21=1+2+3+4+5+6
21=6+7+8
21=10+11
1.0 điểm
Trình bày rõ ràng, cấu trúc dễ nhìn; giải thuật tốt, ngắn gọn
0.5 điểm
Bài 2: (5.0 điểm)


Test 1: N=15
N=30
15=13+2
30=21+8+1
1.5 điểm
Test 2: N=222 222=144+55+21+2 1.0 điểm
Test 3: N=12345 12345=10946+987+377+34+1 1.0 điểm
Test 4: N=999999999
999999999=701408733+267914296+24157817+5
702887+514229+196418+75025+28657+1597+2
33+89+13+5
1.0 điểm
Trình bày rõ ràng, cấu trúc dễ nhìn; giải thuật tốt, ngắn gọn 0.5 điểm
Bài 3: (5.0 điểm)

Test 1:
N=10
A1=4 A6=11
A2=5 A7=8
A3=12 A8=14

A4=5 A9=9
A5=4 A10=4
Cac so xuat hien trong mang la: 4, 5, 12, 11, 8, 14, 9
So xuat hien nhieu nhat trong mang la: 4
1.5 điểm
Test 2:
N=20
A1=2 A11=17
A2=5 A12=5
A3=12 A13=16
A4=5 A14=35
A5=2 A15=74
A6=11 A16=5
A7=8 A17=2
A8=14 A18=17
A9=9 A19=41
A10=2 A20=2
Cac so xuat hien trong mang la: 2, 5, 12, 11, 8, 14, 9,
17, 16, 35, 74, 41
So xuat hien nhieu nhat trong mang la: 2
1.0 điểm
Test 3:
N=6
A1=11 A4=44
A2=22 A5=55
A3=33 A6=33
Cac so xuat hien trong mang la: 11, 22, 33, 44, 55
So xuat hien nhieu nhat trong mang la: 33
1.0 điểm


2
Test 4:
N=20
A1=2 A11=1
A2=2 A12=2
A3=3 A13=3
A4=1 A14=2
A5=4 A15=4
A6=2 A16=5
A7=3 A17=1
A8=1 A18=3
A9=2 A19=2
A10=4 A20=4
Cac so xuat hien trong mang la: 2, 3, 1, 4,5
So xuat hien nhieu nhat trong mang la: 2
1.0 điểm
Trình bày rõ ràng, cấu trúc dễ nhìn; giải thuật tốt, ngắn gọn
0.5 điểm
Bài 4: (5.0 điểm)

Test 1:
- Nhap vao tien gui ban dau:
500000
- So thang muon gui: 8
- So tien duoc sau sau 8 thang la: 521240.92
1.5 điểm
Test 2:
- Nhap vao tien gui ban dau:
123456789
- So thang muon gui: 1

- So tien duoc sau sau 1 thang la: 123580245.79
1.0 điểm
Test 3:
- Nhap vao tien gui ban dau:
250000000
- So thang muon gui: 3
- So tien duoc sau sau 3 thang la: 255000000.00
1.0 điểm
Test 4:
- Nhap vao tien gui ban dau:
2000000000
- So thang muon gui: 34
- So tien duoc sau sau 34 thang la: 2489235365.41
1.0 điểm
Trình bày rõ ràng, cấu trúc dễ nhìn; giải thuật tốt, ngắn gọn
0.5 điểm

HẾT
Trang 1/5
SỞ GIÁO DỤC & ĐÀO TẠO
LÂM ĐỒNG


ĐỀ THI CHÍNH THỨC
(Đề thi có 02 trang, gồm 3 bài)
KÌ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
NĂM HỌC 2010 - 2011

Môn : TIN HỌC - THCS
Thời gian : 150 phút (không kể thời gian giao đề)

Ngày thi : 18/2/2011

Cấu trúc đề thi:
STT

Tên bài Tên file bài làm Tên file INPUT Tên file OUTPUT
1 PHẦN TỬ YÊN
NGỰA
PTYN.PAS PTYN.INP PTYN.OUT
2 TỔNG CÁC SỐ
FIBONACI
FIBO.PAS FIBO.INP FIBO.OUT
3 CHỌN PHẦN
THƯỞNG
PTHUONG.PAS PTHUONG.INP PTHUONG.OUT

Bài 1: (6 điểm) PHẦN TỬ YÊN NGỰA
Cho mảng 2 chiều A có kích thước MxN số nguyên. Phần tử A[i,j] được gọi là phần tử
yên ngựa nếu nó là phần tử nhỏ nhất trong hàng i đồng thời là phần tử lớn nhất trong cột j.
Em hãy lập chương trình tìm phần tử yên ngựa của mảng A.
Dữ liệu vào: cho file PTYN.INP gồm:
- Dòng đầu tiên gồm 2 số M, N (0 ≤ M,N ≤100)
- M dòng tiếp theo, mỗi dòng gồm có N số nguyên của mảng A
(các giá trị cách nhau ít nhất 1 khoảng cách).
Dữ liệu ra: ghi ra file PTYN.OUT vị trí của các phần tử yên ngựa (nếu có) hoặc dòng
thông báo “Không có phần tử yên ngựa”.
Ví dụ:
PTYN.INP PTYN.OUT
3 3
15 3 9

55 4 6
76 1 2
(2,2)

Hoặc :
PTYN.INP PTYN.OUT
3 3
15 10 5
55 4 6
76 1 2
Khong co phan tu yen ngua


Bài 2: (7 điểm) TỔNG CÁC SỐ FIBONACI
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.
Dữ liệu vào: cho file FIBO.INP chứa số N (N ≤ 2000000000)
Dữ liệu ra: ghi ra file FIBO.OUT biểu diễn số N thành tổng của ít nhất các số
Fibonaci khác nhau.



Trang 2/5

Ví dụ:

FIBO.INP FIBO.OUT
129 129 = 89 + 34 + 5 + 1

Hoặc
FIBO.INP FIBO.OUT
8 8 = 8

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.
Dữ liệu vào: cho file PTHUONG.INP gồm các dòng:
- Dòng đầu tiên là số phần thưởng N
- N dòng tiếp theo lần lượt là giá trị của các phần thưởng.
Dữ liệu ra: ghi ra file PTHUONG.OUT gồm các dòng:
- Dòng đầu tiên ghi tổng giá trị lớn nhất của các phần thưởng đã chọn

- Dòng tiếp theo ghi vị trí của các phần thưởng đã chọn theo thứ tự tăng dần.
Ví dụ:

PTHUONG.INP PTHUONG.OUT
5
6
9
1
3
5
23
1 2 4 5
Hoặc

PTHUONG.INP PTHUONG.OUT
7
6
9
1
3
5
10
4
32
1 2 4 6 7

HẾT
Họ và tên thí sinh: Số báo danh:
Giám thị 1: Ký tên:
Giám thị 2: Ký tên:

Trang 3/5
SỞ GIÁO DỤC & ĐÀO TẠO KÌ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
LÂM ĐỒNG
NĂM HỌC 2010 – 2011

HƯỚNG DẪN CHẤM ĐỀ CHÍNH THỨC
Môn : TIN HỌC - THCS
Ngày thi : 18/2/2011

Bài 1: (6 điểm)
Có 6 bộ TEST, chạy đúng mỗi bộ cho 1 điểm.
STT TEST.INP TEST.OUT
1 3 3
15 3 9
55 4 6
76 1 2
(2,2);
2 3 4
15 10 8 8
55 4 6 2
76 9 12 7
(1,4);
3 3 4
15 10 8 8
55 4 6 2
76 9 12 8
(1,4); (3,4)
4 4 5
1 1 1 1 1
1 1 1 1 1

1 1 1 1 1
1 1 1 1 1
(1,1); (1,2); (1,3); (1,4); (1,5); (2,1);
(2,2); (2,3); (2,4); (2,5); (3,1); (3,2);
(3,3); (3,4); (3,5); (4,1); (4,2); (4,3);
(4,4); (4,5);
5 TEST5INP (dữ liệu trên đĩa hướng
dẫn chấm)
Khong co phan tu yen ngua
6 TEST6INP (dữ liệu trên đĩa hướng
dẫn chấm)
(6,1)

Bài 2: (7 điểm)
Có 7 bộ TEST, chạy đúng mỗi bộ cho 1 điểm.
STT TEST.INP TEST.OUT
1 10 10 = 8 + 2
2 89 89 = 89
3 129 129 = 89 + 34 + 5 + 1
4 1000 1000 = 987 + 13
5 11594 11594 = 10946 + 610 + 34 + 3 + 1
6 14930352 14930352 = 14930352
7 246854244 246854244 = 165580141 + 63245986
+ 14930352 + 2178309 + 832040 +
75025 + 10946 + 987 + 377 + 55 + 21
+ 5
Bài 3: (7 điểm)
Có 7 bộ TEST, chạy đúng mỗi bộ cho 1 điểm.
Trang 4/5


STT TEST.INP TEST.OUT
1 5
6
9
1
3
5
23
1 2 4 5
2 7
6
9
1
3
5
10
4
32
1 2 4 6 7
3 5
2
2
2
2
2
8
1 2 4 5
4 100
1
2

3
4

99
100
3400
1 3 4 6 7 9 10 12 13 15
16 18 19 21 22 24 25 27 28 30
31 33 34 36 37 39 40 42 43 45
46 48 49 51 52 54 55 57 58 60
61 63 64 66 67 69 70 72 73 75
76 78 79 81 82 84 85 87 88 90
91 93 94 96 97 99 100
5 3
1
2
3
5
2 3
6 5
1
0
3
0
4
8
1 3 5
7 10
1
6

3
20
4
23
4
57
241
1 2 4 6 7 9 10
Trang 5/5
87
100


HẾT




Trang 1/ 2
SỞ GD&ĐT NINH BÌNH




ĐỀ THI CHỌN HỌC SINH GIỎI LỚP 9 THCS
Năm học 2012 – 2013
MÔN:TIN HỌC
(Thời gian làm bài 150 phút, không kể thời gian giao đề)
Đề thi gồm 03 câu, trong 02 trang


Yêu cầu kỹ thuật:
* Các file chương trình và file dữ liệu được đặt tên chính xác như sau:
Tên bài File bài làm Dữ liệu vào Dữ liệu ra Time


Bài 1: Số siêu nguyên tố
SNT.PAS SNT.INP SNT.OUT
2s

Bài 2: Trò chơi với băng số
DIV.PAS DIV.INP DIV.OUT
2s

Bài 3: Bài toán ô vuông
SQUARE.PAS SQUARE.INP SQUARE.OUT
2s
Bài 1: Số siêu nguyên tố (8 điểm) File bài làm: SNT.PAS
Tại Vương quốc Byte xinh đẹp, mỗi người luôn chọn cho mình một con số,
theo họ số nguyên tố là số mang lại sự may mắn và ai tìm được một số siêu nguyên tố
còn may mắn hơn nữa. Số siêu nguyên tố là một số nguyên tố mà khi bỏ 1 số tùy ý
các chữ số bên phải của nó thì phần còn lại vẫn là 1 số nguyên tố. Số 2333 là 1 số
siêu nguyên tố vì 2333 là một số nguyên tố và 233, 23, 2 cũng là các số nguyên tố.
Dữ liệu vào: SNT.INP Chứa một số nguyên dương n (n ≤ 10
9
)
Dữ liệu ra: SNT.OUT Nếu N là siêu nguyên tố ghi giá trị 1, ngược lại ghi giá trị 0
Ví dụ:


Bài 2. Trò chơi với băng số (8 điểm) File bài làm DIV.PAS

Cho một băng số gồm n số nguyên dương, mỗi số được viết trên một ô. Hãy
cắt băng số này thành nhiều đoạn nhất sao cho tổng các phần tử trong các đoạn là
bằng nhau.
Dữ liệu vào: DIV.INP + Dòng đầu ghi n (n ≤ 1000)
+ Dòng tiếp theo ghi n số nguyên dương a
1
, a
2
, , a
n

(các số nằm trên một dòng cách nhau bởi một dấu cách a
i
≤ 1000)
Dữ liệu ra: DIV.OUT Ghi K là số đoạn cần chia.
Ví dụ:



DIV.INP DIV.OUT
Giải thích
8
10 2 6 2 5 2 1 2
3

Đoạn 1: 10
Đoạn 2: 2 + 6 + 2 =10
Đoạn 3: 5 + 2 + 1 + 2 = 10
ĐỀ THI CHÍNH THỨC



SNT.INP SNT.OUT

2333 1


SNT.INP SNT.OUT

13 0


SNT.INP SNT.OUT

2333 1


SNT.INP SNT.OUT

13 0

10

2 6 2 5 2 1 2

10


2 6 2

5 2 1 2




Trang 2/ 2
Bài 3: Bài toán ô vuông (4 điểm) File bài làm: SQUARE.PAS
Cho một bảng chữ nhật gồm m * n điểm (gồm m hàng ngang trên mỗi hàng có
n điểm). Các điểm liền kề trên cùng một hàng hoặc một cột có thể được nối với nhau
bởi một đoạn thẳng có kích thước bằng 1. Trên mỗi hàng có nhiều nhất n - 1 đoạn
thẳng nằm ngang nối các điểm liền nhau, trên mỗi cột có nhiều nhất là m - 1 đoạn
thẳng thẳng đứng nối các điểm liền nhau. Xem hình dưới:






Với bảng trên ta có 3 hàng ngang mỗi hàng 5 điểm. Các đoạn thẳng nối chúng
tạo nên 2 ô vuông. Để mô tả bảng người ta dùng hai mảng nhị phân: mảng Ngang
diễn tả các đoạn thẳng nằm ngang, mảng Dọc biểu diễn các đoạn thẳng thẳng đứng.
Trong các mảng, số 1 diễn tả có đoạn thẳng nối hai điểm liên tiếp, số 0 diễn tả không
có đoạn thẳng nối hai điểm liên tiếp.
Yêu cầu: Lập trình đếm số lượng các ô vuông mà cạnh có độ dài bằng 1 tạo bởi các
đoạn nối có trên bảng đã cho.
Dữ liệu vào: SQUARE.INP
+ Dòng đầu tiên gồm 2 số nguyên dương lần lượt là m, n (m, n ≤ 1000). Hai số
cách nhau một khoảng trắng.
+ m dòng tiếp theo diễn tả các đoạn thẳng nằm ngang (như bảng ngang mô tả ở
phần trên). Hai số liền nhau cách nhau một khoảng trắng.
+ m - 1 dòng tiếp theo diễn tả các đoạn thẳng thẳng đứng (như bảng dọc mô tả
ở phần trên). Hai số liền nhau cách nhau một khoảng trắng.

Dữ liệu ra : SQUARE.OUT
+ Số lượng ô vuông có độ dài cạnh bằng 1.
Ví dụ:
SQUARE.INP SQUARE.OUT
3 5
1 0 1 0
1 0 0 0
1 1 1 1
1 1 1 0 0
1 1 0 0 0
2

HẾT
Họ và tên thí sinh : Số báo danh
Họ và tên, chữ ký: Giám thị 1:
Họ và tên, chữ ký: Giám thị 2:


Ngang: Dọc:
1

0

1

0

1

0


0

0

1

1

1

1


1

1

1

0

0

1

1

0


0

0



Trang 3/ 2

SỞ GD&ĐT NINH BÌNH HDC ĐỀ THI CHỌN HSG LỚP 9 THCS
Năm học 2012 – 2013
MÔN: Tin học
(Hướng dẫn chấm gồm 03 trang)
I. HƯỚNG DẪN CHUNG
Chấm tự động bằng phần mềm AMM2 với các bộ test có sẵn trên đĩa CD.
II. ĐÁP ÁN VÀ THANG ĐIỂM
1. Cấu trúc bộ test và thang điểm
Bài Test Điểm
Bài 1
Gồm 16 bộ test, mỗi bộ 0.5 điểm. 8 điểm
Bài 2
Gồm 16 bộ test, mỗi bộ 0.5 điểm. 8 điểm
Bài 3
Gồm 16 bộ test, mỗi bộ 0.25 điểm. 4 điểm
2. Đáp án

Hết
Bài 1:
Const fi = 'SNT.INP';
Fo = 'SNT.OUT';
var n: longint; f:text; kq: boolean;

function nt(n: longint):boolean;
var i: longint;
begin
if n<2 then exit(false);
if n=2 then exit(true);
for i:=2 to trunc(sqrt(n)) do
if n mod i = 0 then exit(false);
exit(true);
end;
begin
assign(f,fi); reset(f);
readln(f,n);
close(f);
kq:= true;
while n<>0 do
begin
kq:= kq and nt(n);
n:= n div 10;
end;
assign (f,fo); rewrite(f);
if kq then write(f,'1') else write(f,'0');
close(f);
end.

Bài 2:
const

Trang 4/ 2
tfi='DIV.INP';
tfo='DIV.OUT';

var n: longint;
a, s: array[0 1001] of longint;
res: longint;

function ok(t: longint): boolean;
var i,u,tong: longint;
begin
tong:=0;
for i:=1 to n do if a[i]<>0 then
begin
tong:=tong+a[i];
if tong=t then tong:=0;
end;
exit(tong=0);
end;
procedure main;
var j,u,i,k,t: longint;
begin
assign(input,tfi); reset(input);
assign(output,tfo); rewrite(output);
read(n);
for i:=1 to n do read(a[i]);
s[0]:=0;
for i:=1 to n do s[i]:=s[i-1]+a[i];
for k:=n downto 1 do if s[n] mod k=0 then
begin
t:=s[n] div k;
if ok(t) then
begin
res:=k;

break;
end;
end;
writeln(res);
close(input); close(output);
end;

BEGIN
main;
END.
Bài 3
const fi='SQUARE.INP';
fo='SQUARE.OUT';
var f:text;
a,nga,doc:array[1 1000,1 1000] of integer;

Trang 5/ 2
i,m,n,d,j:integer;
procedure nhap;
var i,j:integer;
begin
assign(f,fi); reset(f);
readln(f,m,n);
for i:=1 to m do
begin
for j:=1 to n-1 do
read(f,nga[i,j]);
readln(f);
end;
for i:=1 to m-1 do

begin
for j:=1 to n do read(f,doc[i,j]);
readln(f);
end;
end;
begin
nhap;
d:=0;
for i:=1 to m-1 do
for j:=1 to n-1 do
if nga[i,j]+nga[i+1,j]+doc[i,j]+doc[i,j+1]=4 then
inc(d);
assign(f,fo); rewrite(f);
write(f,d);
close(f);
end.

1/2

Sở Gd&Đt kỳ thi CHọN học sinh giỏi lớp 9 tHCS
Quảng bình năm học 2012- 2013
Môn thi: tin học
Đề thi chính thức (Khóa thi ngày 27 tháng 3 năm 2013)
Số Báo Danh: Thời gian làm bài: 150 phút (không kể thời gian giao đề)
( thi gm cú 02 trang)

RA
S dng ngụn ng lp trỡnh Turbo Pascal lp trỡnh gii cỏc bi toỏn sau:

Cõu 1: (3,0 im) Phn thng PT.PAS

Trong cuc thi gii toỏn qua mng internet mi hc sinh u cú s im
tớch ly riờng ca mỡnh. S im tớch ly ca mi hc sinh l mt s nguyờn
dng K (0 < K 2ì10
9
). i tuyn ca trng THCS Ti Nng cú N hc sinh
tham gia d thi (2 N 100). Ti bui gp mt trc k thi cp tnh, thy hiu
trng quyt nh thng cho cỏc hc sinh trong i tuyn Q triu ng, bit rng
im tớch ly ca mi hc sinh u chia ht cho Q.

Yờu cu: Hóy tỡm s nguyờn dng Q ln nht.
D liu vo: Cho trong file vn bn PT.INP cú cu trỳc nh sau:
- Dũng 1: Ghi s nguyờn dng N l s lng hc sinh.
- Dũng 2: Ghi N s nguyờn dng ln lt l im tớch ly ca N hc sinh, cỏc s
c ghi cỏch nhau ớt nht mt du cỏch.
D liu ra: Ghi ra file vn bn PT.OUT theo cu trỳc nh sau:
- Dũng 1: Ghi s nguyờn dng Q tỡm c.
Vớ d:
PT.INP PT.OUT
5
15 24 45 36 27
3

Thi gian thc hin chng trỡnh khụng quỏ 1 giõy cho mi b d liu vo.

Cõu 2: (3,5 im) Mt khu MK.PAS
Cu Tớ thng xuyờn tham gia thi lp trỡnh trờn mng. Vỡ t c thnh
tớch cao nờn Tớ c gi tng mt phn mm dit virus. Nh sn xut phn mm
cung cp cho Tớ mt mó s l mt s nguyờn dng N cú khụng quỏ 255 ch s.
ci t c phn mm, Tớ phi nhp vo mt khu ca phn mm. Mt khu l
mt s nguyờn dng M c to ra bng cỏch tớnh tng giỏ tr cỏc ch s ca N.


Yờu cu: Hóy tỡm s nguyờn dng M.
D liu vo: Cho trong file vn bn MK.INP cú cu trỳc nh sau:
- Dũng 1: Ghi s nguyờn dng N.
D liu ra: Ghi ra file vn bn MK.OUT theo cu trỳc nh sau:
- Dũng 1: Ghi s nguyờn dng M tỡm c.
Vớ d:
MK.INP MK.OUT
84915388247 59

2/2

Câu 3: (3,5 điểm) Tần suất TS.PAS
Cho tập hợp S có N phần tử nguyên dương {s
1
, s
2
,…, s
N
}.
(1 ≤ N ≤ 32000; 0 < s
i
≤ 32000; 1 ≤ i ≤ N)
Yêu cầu: Hãy liệt kê các phần tử trong S có số lần xuất hiện lớn hơn một lần.
Dữ liệu vào: Cho trong file văn bản TS.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N.
- Dòng 2: Ghi N số nguyên dương là giá trị các phần tử của tập hợp S, các số được
ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra: Ghi ra file văn bản TS.OUT trên nhiều dòng, dòng thứ i ghi 2 số s
i

d
i
, hai
số cách nhau một dấu cách. Trong đó s
i
là phần tử xuất hiện trong S lớn hơn một lần và
d
i
tương ứng là số lần s
i
xuất hiện.
Ví dụ:
TS.INP TS.OUT
7
2 5 5 3 5 3 9
3 2
5 3

==HẾT==

3/2

Së Gd&§t kú thi CHäN häc sinh giái líp 9 THCS
Qu¶ng b×nh n¨m häc 2012 - 2013
m«n: tin häc
h−íng dÉn chÊm
I- Phương pháp:
- Giám khảo tạo bộ dữ liệu vào, tính toán kết quả. Thực hiện chương trình của
học sinh và so sánh kết quả.
- Giám khảo có thể sử dụng chương trình gợi ý dưới đây để tính toán kết quả

của dữ liệu vào.
- Chương trình học sinh đúng một bộ test, giám khảo cho 0.5 điểm. Như vậy,
nếu một câu có 3 điểm thì giám khảo phải tạo 6 bộ test.
- Đối với câu 1: Giám khảo phải tạo được 01 bộ test có N = 100, 01 bộ test có
các giá trị K > 65535 và 01 bộ test chấm được thời gian thực hiện chương trình của
học sinh với N=100 và K > 65000×10
3
.
- Đối với câu 2: Giám khảo phải tạo được 01 bộ test có K > 200.
- Đối với câu 3: Giám khảo phải tạo được 01 bộ test có N = 32000.
II- Chương trình gợi ý:
Câu 1: (3,0 điểm) Phần thưởng
Program Phan_thuong;
Const fi='PT.INP';
fo='PT.OUT';
Type mmc=Array[0 101] of Longint;
Var N:Longint;
A:mmc;
Function UCLN(x,y:Longint):Longint;
Var sodu:Word;
Begin
sodu:=x mod y;
While sodu<>0 do
Begin
x:=y;
y:=sodu;
sodu:=x mod y;
End;
UCLN:=y;
End;

Procedure Read_Data;
Var f:text;
i:Longint;
Begin
Assign(f,fi);
Reset(f);
Readln(f,N);
For i:=1 to N do
Read(f,A[i]);
Close(f);
End;
Function USC:Longint;
Var f:text;
i,mUSC:longint;
Begin
mUSC:=UCLN(A[1],A[2]);
for i:= 3 to N do
mUSC:=UCLN(mUSC,A[i]);
USC:=mUSC;
End;
Procedure Write_Data;
Var f:Text;
Begin
Assign(f,fo);
Rewrite(f);
Write(f,USC);
Close(f);

4/2


End;
BEGIN
Read_Data;
Write_Data;
End.
Câu 2: (3,5 điểm) Mật khẩu
Program Mat_khau;
Const fi='MK.INP';
fo='MK.OUT';
A:Array['0' '9'] of Byte = (0,1,2,3,4,5,6,7,8,9);
Var N:byte;
St:String;
Procedure Read_Data;
Var f:text;
Begin
Assign(f,fi);
Reset(f);
Readln(f,St);
Close(f);
End;
Function Tong:Longint;
Var f:text;
i,T:Longint;
Begin
T:=0;
For i:=1 to Length(St) do
T:=T+A[St[i]];
Tong:=T;
End;
Procedure Write_Data;

Var f:Text;
Begin
Assign(f,fo);
Rewrite(f);
Write(f,Tong);
Close(f);
End;
BEGIN
Read_Data;
Write_Data;
End.
Câu 3: (3,5 điểm) Tần suất
{$R+}
const fi='TS.INP';
fo='TS.INP';
type mmc=array[0 32000] of word;
var a:mmc;
f:text;
n,d:word;
i,x:word;
Time:Longint;Times:Longint absolute 0:$46C;
Begin
Time:=Times;
Fillchar(A,sizeof(A),0);
assign(f,fi);
reset(f);
readln(f,n);
For i:=1 to n do
Begin
read(f,x);

a[x]:=a[x]+1;
End;
close(f);
assign(f,fo);
rewrite(f);
For i:=0 to 32000 do
if a[i]>1 then writeln(f,i,' ',a[i]);
close(f);
Writeln((Times-Time)/18.2:0:0);
Readln;
End.



5/2


×