100
Thứ 3+5+7: 15h HOÁN VỊ CHỮ CÁI Cho một xâu S chỉ gồm các chữ cái in hoa, 1 <= độ dài <= 9. Yêu cầu: Liệt kê các hoán vị đó theo thứ tự từ điển Dữ liệu vào: Gồm 1 dòng duy nhất chứa xâu S Dữ liệu ra: + Dòng 1: Ghi số lượng hoán vị tìm được (K) + K dòng tiếp theo, mỗi dòng ghi một xâu hoán vị của xâu S theo đúng thứ tự từ điển Ví dụ: QBHV.INP QBHV.OUT ABAB AABB ABAB ABBA BAAB BABA BBAA PHÂN TCH Cho một số nguyên dương N (N≤30) Hy phân tch N thành tng của các số nguyên dương. Các cách phân tch là hoán vị của nhau chỉ tnh là một cách D liu vo: từ tệp văn bn TONG.INP gồm duy nhất một số N D liu ra: ghi vào tệp văn bn TONG.OUT gồm nhiu dòng mỗi dòng là một cách phân tch số N, cách dòng được sp xếp theo chiu tăng dn. Các số trên một dòng được cách nhau 1 k tự trng V d: TONG.INP TONG.OUT 6 1 1 1 1 1 1 1 1 1 1 2 1 1 1 3 1 1 2 2 1 1 4 1 2 3 1 5 2 2 2 2 4 3 3 6

bài tập bồi dưỡng học sinh giỏi Tin học

Embed Size (px)

DESCRIPTION

Một số bài toán Tin học hay dành cho học sinh giỏi Tin học cấp 2.

Citation preview

Page 1: bài tập bồi dưỡng học sinh giỏi Tin học

Thứ 3+5+7: 15h

HOÁN VỊ CHỮ CÁI

Cho một xâu S chỉ gồm các chữ cái in hoa, 1 <= độ dài <= 9. Yêu cầu: Liệt kê các hoán vị đó theo thứ tự từ điển Dữ liệu vào: Gồm 1 dòng duy nhất chứa xâu S Dữ liệu ra: + Dòng 1: Ghi số lượng hoán vị tìm được (K) + K dòng tiếp theo, mỗi dòng ghi một xâu hoán vị của xâu S theo đúng thứ tự từ điển Ví dụ:

QBHV.INP QBHV.OUTABAB AABB

ABABABBABAABBABABBAA

PHÂN TICHCho một số nguyên dương N (N≤30) Hay phân tich N thành tông của các số nguyên dương. Các cách phân

tich là hoán vị của nhau chỉ tinh là một cáchDư liêu vao: từ tệp văn ban TONG.INP gồm duy nhất một số NDư liêu ra: ghi vào tệp văn ban TONG.OUT gồm nhiêu dòng mỗi dòng là một cách phân tich số N, cách

dòng được săp xếp theo chiêu tăng dân. Các số trên một dòng được cách nhau 1 ky tự trăngVi du:

TONG.INP TONG.OUT6 1 1 1 1 1 1

1 1 1 1 21 1 1 31 1 2 21 1 41 2 31 52 2 22 43 36

VÒNG TRÒN SỐ NGUYÊN TỐ

Một vòng tròn chứa n vòng tròn nhỏ (n chẵn). Các vòng tròn nhỏ được đánh số từ 1 đến n theo chiêu kim đồng hồ. Cân điên các số tự nhiên từ 1 đến n vào các vòng tròn nhỏ sao cho tông của 2 số trên 2 vòng tròn nhỏ liên tiếp là số nguyên tố. Vòng tròn 1 luôn được ghi số 1.

Vi du: với N=6 ta có 1 cách điên như hình vẽ sau:

6

5

2

3

4

1

Page 2: bài tập bồi dưỡng học sinh giỏi Tin học

Dư liêu: Vào từ tập tin RING.INP chứa số nguyên dương chẵn n (2 < n < 20).

Kết quả: Ghi vào tập tin văn ban RING.OUT, gồm nhiêu dòng, mỗi dòng là một cách điên, các số trên một dòng cách nhau bằng 1 ky tự trăng

Vi du:

RING.INP RING.OUT RING.INP RING.OUT

6 1 4 3 2 5 61 6 5 2 3 4

8 1 2 3 8 5 6 7 41 2 5 8 3 4 7 61 4 7 6 5 8 3 21 6 7 4 3 8 5 2

BÀI TOÁN RÚT TIỀN TỰ ĐỘNG ATM

Một máy ATM hiện có n (n≤20) tờ tiên có giá trị t1, t2,…,tN. Hay đưa ra một cách tra lời với số tiên đúng bằng S.

Dư liêu vao: từ tệp văn ban ATM.INP

+ Dòng đâu chứa 2 số n và S

+ Dòng thứ 2 gồm n số t1, t2,…,tn

Kết quả ra: ghi vào tệp văn ban ATM.OUT có dạng: Nếu có thể tra đúng S thì đưa ra cách tra, nếu không thì ghi -1.

Vi du:

ATM.INP ATM.OUT10 390200 10 20 20 50 50 50 50 100 100

20 20 50 50 50 100 100

Page 3: bài tập bồi dưỡng học sinh giỏi Tin học

Bài toán người du lịch

Cho N thành phố được đánh số từ 1 đến N và các tuyến đường giao thông hai chiêu giữa chúng, mạng lưới giao thông này được cho bởi mang C[1..n,1..n], ở đây Cij=Cji là chi phi đi đoạn đường trực tiếp từ thành phố i đến thành phố j.

Một người du lịch xuất phát từ thành phố 1, muốn đi thăm tất ca các thành phố

Page 4: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI TẬP CƠ BẢN VỀ ĐỆ QUY1.Tinh S(n) = 1 + 2 + 3 + ... + n - 1 + n2.Tinh S(n) = 1^2 + 2^2 + 3^2 + ... + (n-1.^2 + n^23.Tinh S(n) = 1 + 1/2 + 1/3 + ... + 1/n4.Tinh S(n) = 1/2 + 1/4 + ... + 1/2n5.Tinh S(n) = 1 + 1/3 + 1/5 + ... + 1/(2n+1.6.Tinh S(n) = 1/(1*2. + 1/(2*3. + 1/( n(*n-1. .7.Tinh S(n) = 1/2 + 2/3 + 3/4 + ... + n/(n+1.8.Tinh S(n) = 1/2 + 3/4 + 5/6 + ... + (2n+1./(2n+2.9.Tinh T(n) = 1*2*3*.....*n10.Tinh T(x,n) = x^n11.Tinh S(n) = 1 + 1.2 + 1.2.3 + .... + 1.2.3....n12.Tinh S(x,n) = x + x^2 + x^3 + ... + x^n13.Tinh S(x,n) = x^2 + x^4 +.... + x^2n14.Tinh S(x,n) = x + x^3 + x^5 +....+ x^(2n+1.15.Tinh S(n) = 1 + 1/(1+2. + 1/(1+2+3. + ... + 1/(1+2+3+...+n)16.Tinh S(x,n) = x + (x^2./2! + (x^3./3! + ... + (x^n)/n!17.Tinh S(x,n) = 1 + (x^2./2! + (x^4./4! + ... + (x^2n)/(2n)!18.Tìm ước số lẻ lớn nhất của số nguyên dương n . Vi dụ : n = 100 ước lẻ lớn nhất của 100 là 2519.Tinh S(n) = sqrt(2 + sqrt (2 + ... sqrt ( 2 + sqrt(2. . . .20.Tinh S(n) = sqrt(n + sqrt (n-1 + sqrt(n-2 + ...sqrt(2 + sqrt (1. . . . .21.Tinh S(n) = sqrt(1 + sqrt(2 + sqrt (3 + ...sqrt (n-1 + sqrt (n)....22.S(n) = 1/(1 + 1/(1 + 1/(1 + 1/(... 1 /(1/(1 + 1/(1 + 1 .......23.Hay đếm số lượng chữ số của số nguyên dương n24.Hay tinh tông các chữ số của số nguyên dương n25.Hay tinh tich các chữ số của số nguyên dương n26.Hay đếm số lượng chữ số lẻ của số nguyên dương n27.Hay tinh tông các chữ số chẵn của số nguyên dương n28.Hay tinh tich các chữ số lẻ của số nguyên dương n29.Cho số nguyên dương n) Hay tìm chữ số đâu tiên của n30.Hay tìm chữ số đao ngược của số nguyên dương n31.Tìm chữ số lớn nhất của số nguyên dương n32.Tìm chữ số nhỏ nhất của số nguyên dương n33. Hay kiểm tra số nguyên dương n có toàn chữ số lẻ hay không ?

Cho day số Fibonaci 1, 1, 2, 3, 5, 8, 13,…Trong đó Fi được tinh theo công thức

F1=F2=1

Fi = Fi-1+Fi-2 với i>2

Hay tìm số Fibonaci thứ N trong day số

34. Với số nguyên dương N cho trước, xét tập hợp A(N) gồm tất ca các phân số có giá trị trong đoạn [0..1] với mẫu số không lớn hơn N) Vi dụ với N=5 ta có các phân số:

0/1; 1/5; 1/4; 1/3; 2/5; 1/2; 3/5; 2/3; 3/4; 4/5; 1/1

Cho số nguyên dương N) Viết chương trình in ra mọi phân số tối gian thuộc A(N) theo thứ tự tăng dân của giá trị

35. Tháp Hà nội

Có 3 cột A, B, C, trên cột A có N cái dĩa. Nhiệm vụ là chuyển tất ca các dĩa ở A sang C sao cho

+ Mỗi lân chỉ đc chuyển 1 dĩa

+ Dĩa nằm dưới có kich thước lớn hơn dĩa nằm trên

+ Chỉ đc dùng thêm 1 cọc B

Với N=3

A→C

Page 5: bài tập bồi dưỡng học sinh giỏi Tin học

A→B

C→B

A→C

B→A

B→C

A→C;

36. Tìm kiếm nhị phân

Cho số nguyên dương N và day N số nguyên A1, A2,…,AN và một số nguyên K. Hay cho biết vị tri của K trong day số đa cho, nếu K không xuất hiện trong day số thì tra vê giá trị 0

37. Cho ma trận kich thước NxN mỗi ô chỉ chứa các số 0 và 1. Hai ô được gọi là chung 1 vùng nếu như nó có cạnh chung. Hay cho biết vùng chứa ô (x,y) có bao nhiêu ô có giá trị bằng 1.

Vi dụ: 6x6 với ô (x,y)=(3,4)

1 1 0 1 0 1

0 0 0 1 0 1

1 1 1 1 0 1

0 0 0 0 0 1

1 1 0 1 0 1

0 1 1 0 1 0

Kết qua: 6

Page 6: bài tập bồi dưỡng học sinh giỏi Tin học

ĐƯỜNG RAY 1

Cho sơ đồ đường ray xe lửa như hình sau

Ban đâu có N toa tàu xếp theo thứ tự từ 1 đến N theo chiêu từ phai sang trái trên đường ray A, người ta muốn xếp lại các toa tàu theo thứ tự mới từ phai qua trái (p1, p2,…,pN) lên đường ray C theo nguyên tăc: các toa tàu không được vượt nhau trên đường ray, mỗi lân chỉ được chuyển một toa tàu từ A→C, A→B hoặc B→C. Hay cho biết điêu đó có thực hiện được không? Nếu được thì đưa ra các chuyển?

Vi dụ: N=4; Thứ tự cân có là (1, 4, 3, 2)

Phương án chuyển: A→C; A→B; A→B; A→C; A→C; B→C; B→C

ĐƯỜNG RAY 2

Yêu câu như bài trên với sơ đồ đường săt dưới đây:

SỐ SIÊU NGUYÊN TỐ

số siêu nguyên tố là số mà khi bỏ 1 số tùy y các chữ số bên phai của nó thì phân còn lại vẫn là 1 số nguyên tốvi dụ: 2333 là 1 số siêu nguyên tố có 4 chữ số vì 233, 23, 2 cũng là các số nguyên tố.Cho số nguyên dương N, hay đưa ra màn hình tất ca các số siêu nguyên tố nhỏ hơn hoặc bằng N. (N≤109)

Page 7: bài tập bồi dưỡng học sinh giỏi Tin học

BIỂU THỨC NGOẶCMột cụm trong một biểu thức toán học là đoạn nằm giữa hai dấu đóng và dấu mở ngoặc đơn. Với mỗi biểu thức cho trước hay tách các cụm của biểu thức đó.Vi dụ với biểu thức a*(x+1)*((b+2)/(y-3)) ta tách được thành các biểu thức (x+1); (b+2); (y-3); ((b+2)/(y-3))

038. LUCKY NUMBER

Hai chữ số 4 và 7 là những chữ số may măn còn các chữ số khác thì không phai là chữ số may măn và một số nguyên được gọi là số may măn nếu dạng biểu diễn của nó trong hệ thập phân chỉ bao gồm những số may măn. vi dụ 4, 7, 47, 74747,…Yêu cầu: hay cho biết số may măn thứ K là bao nhiêu? (1≤K≤109)Dư liêu vao: từ tệp LUCKY.INP gồm mốt số nguyên K duy nhấtDư liêu ra: ghi vào tệp LUCKY.OUT là số may măn thứ KVi du

LUCKY.INP LUCKY.OUT1 42 73 474 77

015. Tranh sơn dầu

Steve cài đặt chương trình tạo tranh sơn dâu. Chương trình hỗ trợ k màu đánh số từ 1 đến k Tranh được vẽ trên manh vai kich thước n×n ô. Các hàng được đánh số từ 0 từ trên xuống dưới (tọa độ x), các cột (tọa độ y) đánh số từ 0, từ trái sang phai. Ban đâu các ô đêu có màu trăng (màu 1).

Chương trình cung cấp 3 lệnh xử ly:

PAINT c x1 y1 x2 y2 – chọn hình chữ nhật có góc trên trái (x1, y1), góc dưới phai là (x2, y2) và tô hình chữ nhật này theo kiểu vẽ bàn cờ: tô một ô và để cách một ô với ô trên trái là màu c, các ô không tô vẫn giữ nguyên màu cũ,

SAVE – lưu tranh hiện tại,

LOAD j – lấy bức tranh được lưu ở lệnh SAVE thứ j (đánh số từ 1 trở đi) ra xử ly.

Chương trình vẽ bị nhiễm vi rút và bị hệ thống bao vệ xóa. Nhưng may măn, Steve vẫn còn lưu được biên ban xử ly – day các câu lệnh đa kich hoạt, gồm tất ca m câu lệnh.

Yêu cầu: Cho n, k, m và day các câu lệnh đa thực hiện (1 ≤ n ≤ 1000, 2 ≤ k ≤ 105, 1 ≤ m ≤ 105). Tất ca các câu lệnh đêu hợp lệ. Hay khôi phục lại bức tranh đa vẽ.

Dư liêu: Vào từ file văn ban CANVAS.INP:

Dòng đâu tiên chứa 3 số nguyên n, k và m,

Mỗi dòng trong m dòng sau chứa 1 câu lệnh trong biên ban đa lưu.

Kết quả: Đưa ra file văn ban CANVAS.OUT bức tranh dưới dạng ma trận nguyên kich thước n×n.Ví dụ:

CANVAS.INP CANVAS.OUT3 4 7PAINT 2 0 0 1 1SAVEPAINT 3 1 1 2 2SAVEPAINT 4 0 2 0 2

2 1 11 3 14 1 3

1 1 1

1 1 1

1 1 1

0 1 2

0

1

2

2 1 1

1 2 1

1 1 1

0 1 2

0

1

2

PAINT 2 0 0 1 1SAVE

PAINT 3 1 1 2 2

2 1 1

1 3 1

1 1 3

0

SAVEPAINT 4 0 2 0 2

2 1 4

1 3 1

1 1 3

0

LOAD 2 2 1 1

1 3 1

1 1 3

0 1 2

2 1 1

1 3 1

4 1 3

0 1 2

PAINT 4 2 0 2 0

Page 8: bài tập bồi dưỡng học sinh giỏi Tin học

LOAD 2PAINT 4 2 0 2 0

QUÂN MÃ

Cho bàn cơ vua kich thước NxN (4≤N≤16), các dòng được đánh số thứ tự trên xuống dưới từ 1 đến N, các cột được đánh số thứ tự trái qua phai từ 1 đến N. Giao giữa dòng x và cột y gọi là ô (x,y). Một quân ma ban đâu đứng ở ô (s,t) có thể di chuyển tối đa qua 8 ô xung quanh nó theo luật cờ vua (đi theo hình chữ L) như hình dưới đây:

Hãy cho biết từ ô xuất phát (s,t), quân mã di chuyển đến ô (u,v) qua ít nhất bao nhiêu bước?

Dư liêu vao: từ tệp KNIGHT.INP

+ Dòng đâu tiên ghi số nguyên dương N

+ Dòng thứ 2 ghi 4 số s, t, u, v. các số cách nhau một ky tự trăng

Dư liêu ra: ghi vào tệp KNIGHT.OUT một số nguyên duy nhất cho biết số bước it nhất quân ma di chuyển.

Vi du:

KNIGHT.INP KNIGHT.OUT83 4 5 4

2

Page 9: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 2: REPAIR (MS0035)

Một công xưởng có cấu trúc hình chữ nhật được chia thành M ô vuông hàng dọc và N ô vuông hàng ngang (MxN). Các ô vuông có thể có các bức tường dọc theo đường biên của nó theo hướng đông (D), tây (T), nam (N), băc (B). phòng được giới hạn bởi các bức tường của ô vuông gộp lại.

Hay cho biết công xưởng có bao nhiêu phòng

Dư liêu vao: Tập tin văn ban REPAIR.INP

+ Dòng đâu tiên hai số nguyên dương M và N (0≤M,N≤50)

+ Mỗi dòng tiếp theo, mỗi dòng có N số p (0≤p≤15). Số p biểu thị cho số ô vuông tương ứng có bao nhiêu bức tường xung quanh. Số p là tông của:

1 (nếu có tường ở phia T)

2 (Nếu có tường ở phia B)

4 (nếu có tường ở phia D)

8 (nếu có tường ở phia N)

Dư liêu ra: Tập tin văn ban REPAIR.OUT

+ Số lượng phòng của công xưởng

Vi du:

REPAIR.INP REPAIR.INP REPAIR.INP REPAIR.INP

4 7

11 6 11 6 3 10 6

7 9 6 13 5 15 5

1 10 12 7 13 7 5

13 11 10 8 10 12 13

5 4 7

3 2 2 2 2 2 6

1 0 0 4 1 0 4

1 0 0 4 1 0 4

9 8 8 12 9 8 12

1

Page 10: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1: Cho một lưới ô vuông gồm M dòng N cột. Trong mỗi ô của lưới chứa các số nguyên dương từ 1 đến 100, mỗi ô vuông ở dòng x cột y ki hiệu là (x,y). Từ một ô vuông có thể di chuyển sang ô vuông chung cạnh. Một vùng là tập hợp các ô vuông kê cạnh với nhau và có giá trị bằng nhau. Các ô kê cạnh với vùng và có giá trị khác nhau với giá trị các ô trong vùng thì không thuộc vùng.

Hay cho biết trong lưới ô vuông có bao nhiêu vùng có cùng một giá trị.

Dư liêu vao: từ tệp văn ban VUNG.INP

+ Dòng đâu tiên chứa 2 số nguyên dương M và N

+ Trong M dòng tiếp theo, dòng thứ i chứ N số nguyên dương tương ứng giá trị của lưới

Dư liêu ra: ghi vào tệp VUNG.OUT

Gồm nhiêu dòng mỗi dòng ghi 2 số k và t cho biết có t vùng có cùng giá trị k. Nếu có nhiêu dòng thì các dòng được săp xếp theo chiêu tăng dân của k

Vi du:

VUNG.INP VUNG.OUT

5 6

1 1 3 3 6 5

1 3 3 6 6 5

2 3 1 1 1 5

2 2 2 3 5 5

3 3 2 3 1 1

1 3

2 1

3 3

5 1

6 1

Page 11: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1: Lưới (MS0002)

Cho một lưới ô vuông gồm M dòng N cột. Trong mỗi ô của lưới chỉ chứa số 0 hoặc 1, mỗi ô vuông ở dòng x cột y ki hiệu là (x,y). Từ một ô vuông có thể di chuyển sang ô vuông chung cạnh. Một vùng là tập hợp các ô vuông kê cạnh với nhau và có giá trị bằng nhau. Các ô kê cạnh với vùng và có giá trị khác nhau với giá trị các ô trong vùng thì không thuộc vùng. Cho trước hia ô vuông (x1,y1) và (x2,y2). Hay cho biết hai ô vuông đa cho có cùng thuộc 1 vùng hay không, trong trường hợp hai ô vuông này không cùng thuộc một vùng hay kiểm tra xem di chuyển từ ô (x1,y1) sang ô (x2,y2) có phai đi qua đúng một vùng trung gian hay không (Nếu đi qua đúng một vùng trung gian thì gọi là hai ô cách một vùng)

Vi du: Hình bên dưới là ô vuông 4x6, hai ô (3,4) và (1,2) là thuộc một vùng, hai ô (2,3) và (1,6) cách một vùng

1 1 0 0 1 1

0 1 1 0 0 1

0 0 1 1 0 0

1 1 0 0 0 0

Dư liêu vao: Cho trong file văn ban LUOI.INP

Dòng đâu tiên ghi các số M, N, x1, y1, x2, y2 (1≤ x1, x2 ≤M≤100; 1≤y1, y2,≤N≤100)Trong M dòng tiếp theo, mỗi dòng ghi N số 0 hoặc 1 tương ứng với giá trị của các ô lướiCác số cách nhau it nhất một khoang trăngDư liêu ra: Ghi ra file văn ban LUOI.OUT gồm 1 số nguyên:

Nếu hai ô (x1,y1) và (x2,y2) cùng thuộc một vùng thì ghi số 1Nếu hai ô (x1,y1) và (x2,y2) cách một vùng thì ghi số 2Các trường hợp khác ghi số 3Vi du:

LUOI.INP LUOI.OUT

4 6 2 3 1 61 1 0 0 1 10 1 1 0 0 10 0 1 1 0 01 1 0 0 0 0

2

Bai 2:

Cho một bang hình chữ nhật có chiêu dài m, chiêu rộng n, có m x n ô vuông (m,n nguyên), giá trị của mỗi ô vuông là 0 hoặc 1. Nếu các số 0 ở bên trong các ô có chung it nhất một cạnh ta gọi các ô này có chung thành phân liên thông, tương tự cho các ô số 1. Nếu các thành phân liên thông này có it nhất một ô ở biên ta nói đó là thành phân liên thông giáp biên.Bai toán: Cho bang hình chữ nhật như trên hay tìm thành phân liên thông giáp biên lớn nhấtDư liêu vao: từ file văn ban CHUNHAT.INP có cấu trúc như sau:

Dòng đâu tiên là hai số m và nM dòng và n cột tiếp theo ghi giá trị mỗi ô

Dư liêu ra: Trong file văn ban CHUNHAT.OUTDòng đâu ghi tông số ô, nếu không có thì ghi 0Dòng tiếp theo ghi tọa độ các ô trong thành phân liên thông giáp biên lớn nhất

Vi duCHUNHAT.INP CHUNHAT.OUT

5 61 1 1 1 1 11 1 0 0 0 00 0 1 0 0 01 1 0 1 1 10 0 0 1 0 0

7(2,3) (2,4) (2,5) (2,6)(3,4) (3,5) (3,6)

Page 12: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI TẬP(09/11/2013)

Bai 1: Quân tượng (Quốc gia năm 2006)

Xét bàn cờ vuông kich thước n×n. Các dòng được đánh số từ 1 đến n, từ dưới lên trên. Các cột được đánh số từ 1 đến n từ trái qua phai.

Ô nằm trên giao của dòng i và cột j được gọi là ô (i,j). Trên bàn cờ có m (0 ≤ m ≤ n) quân cờ. Với m > 0, quân cờ thứ i ở ô (ri, ci), i = 1,2,..., m. Không có hai quân cờ nào ở trên cùng một ô. Trong số các ô còn lại của bàn cờ, tại ô (p, q) có một quân tượng. Mỗi một nước đi, từ vị tri đang đứng quân tượng chỉ có thể di chuyển đến được những ô trên cùng đường chéo với nó mà trên đường đi không phai qua các ô đa có quân

Cân phai đưa quân tượng từ ô xuất phát (p, q) vê ô đich (s,t). Gia thiết là ở ô đich không có quân cờ. Nếu ngoài quân tượng không có quân nào khác trên bàn cờ thì chỉ có 2 trường hợp: hoặc là không thể tới được ô đich, hoặc là tới được sau không quá 2 nước đi (hình trái). Khi trên bàn cờ còn có các quân cờ khác, vấn đê sẽ không còn đơn gian như vậy.

Yêu cầu: Cho kich thước bàn cờ n, số quân cờ hiện có trên bàn cờ m và vị tri của chúng, ô xuất phát và ô đich của quân tượng. Hay xác định số nước đi it nhất cân thực hiện để đưa quân tượng vê ô đich hoặc đưa ra số -1 nếu điêu này không thể thực hiện được.

Input

Dòng đâu tiên chứa 6 số nguyên n, m, p, q, s, t.

Nếu m > 0 thì mỗi dòng thứ i trong m dòng tiếp theo chứa một cặp số nguyên ri , ci xác định vị tri quân thứ i.

Hai số liên tiếp trên cùng một dòng được ghi cách nhau it nhất một dấu cách.

Output

Gồm 1 dòng duy nhất là số nước đi tìm được

Example

QBBISHOP.INP QBBISHOP.OUT

8 3 7 2 1 4

5 4

3 4

4 7

3

Hạn chế: Trong tất ca các test: 1 ≤ n ≤ 200.

Page 13: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI TẬP(08/11/2013)

Bai 1: Chuột va khoai lang

Trong một manh vườn hình chữ nhật có kich thước MxN, người ta chia manh vườn thành M hàng và N cột, các hàng và cột tạo thành các ô đơn vị hình vuông có cạnh bằng 1, người ta trồng khoai lang trong những ô đơn vị hình vuông. Trong manh vườn này có một chú chuột ở trong hang, chú chuột này cân xác định miên (Hai miên khác nhau không có một cạnh ô vuông nào chung) người ta đa trồng khoai lang có diện tich lớn nhất trong manh vườn để đào một đường hâm đến phân diện tich lớn nhất đó. Hay viết chương trình giúp chú chuột thực hiện công việc đào hâm

Dư liêu: từ tập tin văn ban CHUOT.INP

+ Dòng đâu tiên ghi 2 số nguyên dương M và N là kich thước của manh vườn (1≤M,N≤100).

+ Trong M dòng tiếp theo, mỗi dòng có N ky tự 0 hoặc 1, với y nghĩa 0 là không trồng khoai lang, 1 là có trồng khoai lang

Kết quả: Ghi vào tập tin văn ban CHUOT.OUT một số nguyên là tông số dây khoai lang của miên có diện tich lớn nhất (gia sử mỗi ô chỉ có tối đa một dây khoai lang)

Vi du:

CHUOT.INP CHUOT.OUT

6 6

000111

000011

000011

000011

000011

111000

11

Page 14: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI TẬP(Ngay 02/11/2013)

027. BẢNG SỐ

Rôn yêu thich môn toán, nhưng lại không mạnh lăm vê phân số. Để giúp Rôn khăc phục điểm yếu này thây giáo ra bài tập vê nhà như sau.Cho bang 2×2 ô chứa 4 số dương A, B, C và D 0 < A, B, C , D ≤ 100):

Giá trị của bang này là

Ta có thể chuyển các số trong bang theo chiêu kim đồng hồ:

Nhiệm vụ của Rôn là xác định số lân chuyển it nhất để nhận được bang có giá trị lớn nhất.Vi dụ, với bang sau ta chỉ cân chuyển một lân là được bang có giá trị lớn nhất: Dữ liệu: Vào từ file văn ban TABLE.INP:

Dòng thứ nhất chứa 2 số A và B, Dòng thứ 2 chứa 2 số C và D.

Kết quả: Đưa ra file văn ban TABLE.OUT một số nguyên – số lân chuyển.Ví dụ:

TABLE.INP TABLE.OUT

41 99

100 13

1

033. CẬP BẾN

Steve sống ở một thị trấn nhỏ. Ở đâu có một bến cang mà năm thì mười họa mới có một tàu cập bến. Hôm nay là một ngày đáng nhớ bởi vì tất ca các tàu ra vào cang này dêu cập bến. Steve đánh dấu nó là ngày 1.Ngày tháng trôi qua phẳng lặng. Ngày có tàu cập bấn được Steve coi là thú vị và được ghi lại trên lịch. Steve nhận thấy là các tàu ghé vào cang theo chu kỳ nhất định,mỗi tàu có một chù kỳ riêng của mình. Vi dụ, nếu chu kỳ là 3 ngày thì tàu ghé cang vào các ngày 1, 4, 7, 10, . . .Yêu cầu: Cho n – số lân có tàu ghé cang (1 ≤ n ≤ 5000) và các ngày có tàu cập bến. Hay xác định số lượng tàu khác nhau it nhất cập bến.Dữ liệu: Vào từ file văn ban LANDFALL.INP:

Dòng đâu tiên chứa số nguyên n, Mỗi dòng trong n dòng sau chứa một số nguyên – ngày tàu cập bến (không vượt quá 109).

Kết quả: Đưa ra file văn ban LANDFALL.OUT một số nguyên – số lượng tàu khác nhau it nhất cập bến.

A B

C DAC

BD

A B

C D

C A

D B

D C

B A. . .

41 99

100 13

100 41

13 99

Page 15: bài tập bồi dưỡng học sinh giỏi Tin học

Ví dụ: LANDFALL.INP LANDFALL.OUT517 F11 F13 F19 F21 F39

2

Dem:=0;While do

Begin

{tìm ngày đầu tiên i mà con tàu dem+1 cập bến – ngày 1

D:=A[i]-A[1]; ok[i]=flase;

For j:=i+1 to N do

If A[j]-A[i] =d then

Begin

Ok[j]:=false;

I:=j;

End;

End;

034. XÓA ĐUÔI

Để rèn luyện kỹ năng xử ly xâu thây giáo viết một xâu chuẩn bị trước lên bang, lân lượt từng ky tự, từ trái sang phai. Nếu xuất hiện một phân đuôi không rỗng là xâu con trong phân bên trái còn lại của xâu thì học sinh phai kêu lên:”Xóa đuôi!”. Thây giáo sẽ xóa phân đuôi này rồi viết tiếp các ky tự còn lại vào cuối xâu đang có trên bang.Yêu cầu: Cho xâu ban đâu mà thây giáo chuẩn bị. Xâu có độ dài không quá 1000 và chỉ chứa các ky tự la tinh thường. Hay xác định xâu còn lại trên bang.Dữ liệu: Vào từ file văn ban SUFFIX.INP gồm một dòng chứa xâu ban đâu.Kết quả: Đưa ra file văn ban SUFFIX.OUT xâu còn lại trên bang.Ví dụ:

SUFFIX.INP SUFFIX.OUT

abcabc abc

Abc

Kiểm tra 1 ky tự x xuất hiện trong xâu S? pos(x,S)>0: x xuất hiện trong S

Page 16: bài tập bồi dưỡng học sinh giỏi Tin học

Cú pháp: pos(s1,s2): tra vê vị tri xuất hiện đâu tiên của S1 trong S2. Nếu S1 k xuất hiện trong S2 thì tra vê 0

Var S:ansistring; //FreePascal

Ch:char;

S:=’’;

n:=0;//N là số lượng phân tử của day

While not eof(f) do

Begin

Read(f,ch);

If xuathien(ch,A)=false then begin inc(N);A[n]:=ch;end;

End;

Write(s);

Page 17: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI TẬP(Ngay 1/11/2013)

Bai 1: Đường điMột con robot di chuyển theo một chương trình định sẵn trên mặt phẳng toạ độ. Chương trình này được thể hiện dưới

dạng một day N lệnh (1¿ N¿ 3000). Các lệnh thuộc một trong các dạng sau:

F S: Đi thẳng theo hướng hiện tại S bước.

R S: Rẽ phai 900 và đi S bước.

L S: Rẽ trái 900 và đi S bước.

Yêu cầu: Cho một chương trình điêu khiển robot, hay xác định chiêu dài T đoạn đường mà con robot đa đi được, biết mỗi bước của nó dài d(cm). Ban đâu con robot đứng tại vị tri (0,0) và hướng theo chiêu dương của trục hoành.

Dư liêu: Vào từ file văn ban PATH.INP:

Dòng đâu tiên chứa 2 số nguyên dương N và d.

N dòng tiếp theo, mỗi dòng chứa một lệnh theo quy cách nêu trên.

Kết quả: Ghi ra file PATH.OUT chứa chiêu dài T tìm được.

Vi du:

PATH.INP PATH.OUT

4 1F 5R 7F 2L 9

23

Bai 2: Trò chơi

Chúng ta có một trò chơi như sau: Bạn A sử dụng 3 cái cốc đục (không nhìn thấy vào bên trong), và 3 cái cốc này được úp xuống bàn. Cái cốc bên trái nhất bên trong có một qua bóng. Chúng ta có 3 cách di chuyển hai cái cóc như sau:

Chúng ta sẽ nhập vào một chuỗi tối đa là 50 ky tự, chứa cách di chuyển của các cốc.

Yêu cầu: Đưa ra vị tri của qua câu có trong cốc. Có 3 vị tri là 1, 2, 3 theo thứ tự từ trái sang phai

Dư liêu vao: từ file MOVE.INP gồm 1 dòng duy nhất là xâu ky tự chỉ bao gồm các chữ cái in hoa A, B, C

Dư liêu ra: ghi vào file MOVE.OUT 1 số nguyên duy nhất cho biết vị tri cốc chứa qua câu

Vi du:MOVE.INP MOVE.OUTAB 3

Bai 3: Biến đổi bảngXét bang vuông gồm n dòng và n cột. Các dòng được đánh số từ 1 đến n từ trên xuống dưới. Các cột được đánh số từ

1 đến n từ trái sang phai. Ô nằm ở vị tri dòng i và cột j của bang được gọi là ô (i,j). Trên bang A đa cho, khoang cách từ ô (i,j) đến ô (p,q) được tinh bằng |i-p|+|j-q|. Tại ô (i,j) của bang A ghi số nguyên không âm a ij, i=1,2,…,n; j=1,2,..,n. Dựa vào các số được ghi trên bang A, người ta cân xây dựng một bang B cùng kich thước với A mà trên đó ô (i,j) của bang B sẽ được ghi số bij xác định như sau:

Nếu aij > 0 thì bij = aij

Page 18: bài tập bồi dưỡng học sinh giỏi Tin học

Nếu aij = 0 thì bij có giá trị bằng giá trị apq của ô (p,q) gân ô (i,j) nhất trong số các ô có giá trị khác 0 trên dòng i và cột j của bang A. Trong truờng hợp có nhiêu ô khác không có cùng khoang cách nhỏ nhất đến (i,j) thì ô (p,q) đựoc chọn là ô chứa số lớn nhất trong chúng. Nếu tất ca các phân tử của dòng i và cột j đêu có giá trị 0 thì bij = 0.

Yêu cầu: cho bang A, hay tìm bang B.

Dư liêu: vào từ file văn ban NZTABLE.INP gồm:

Dòng đâu tiên ghi số nguyên dương n (n ≤ 50) Dòng thứ i trong số n dòng tiếp theo ghi n số nguyên không âm a i1, ai2, …, ain là các số trên dòng thứ i của bang,

i=1,2,…,n; aij ≤ 10000.

Kết quả: đưa ra file văn ban NZTABLE.OUT gồm n dòng, dòng thứ i ghi n số nguyên dương b i1, bi2, …, bin là các số trên dòng thứ i của bang B.

Hai số liên tiếp trên cùng một dòng được ghi cách nhau bởi một dấu cách.

Vi du:

NZTABLE.INP NZTABLE.OUT

41 0 3 04 0 0 50 0 6 00 0 0 0

1 3 3 54 4 6 54 6 6 64 0 6 5

Page 19: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI TẬP QUAY LUI(Ngày 20/10/2013)

Bai 1: Cho số nguyên dương N (N≤15) và day số nguyên A1, A2,…,AN đôi một khác nhau. Hay liệt kê tất ca các hoán vị của day số đa cho, mỗi hoán vị được ghi trên một dòng. Các số trên một dòng cách nhau bởi một ky tự trăngBai 2: Cho số nguyên dương N (N≤12), hay liệt kê tất ca các xâu nhị phân có độ dài NBai 3: Một máy ATM có N (N≤15) tờ tiên có giá trị lân lượt là t1, t2,…,tN. Hay đưa ra một cách tra đúng với số tiên bằng SDư liêu vao: ATM.INP+ Dòng đâu tiên ghi 2 số N và S+ Dòng tiếp theo ghi N số nguyên dương, số thứ i có mệnh giá là ti

Dư liêu ra: ghi vào tệp ATM.OUT+ Nếu có cách để tra đúng S tiên thì đưa ra cách tra, ngược lại ghi -1Vi du:

ATM.INP ATM.OUT10 390200 10 20 20 50 50 50 50 100 100

20 20 50 50 50 100 100

Bai 4: Cho số nguyên dương N (N≤20). Hay liệt kê tất ca các xâu có độ dài N chỉ gồm 2 ky tự ‘A’ và ‘B’ mà không có 2 ky tự ‘B’ nào đứng cạnh nhauVi du:

Dư liêu vao Dư liêu ra4 AAAA

AAABAABAABAAABABBAAABAABBABA

Page 20: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI TẬP MẢNG HAI CHIỀU(Ngay 19/10/2013)

Bài 1. Cho mảng hai chiêu gôm N dong và N côt, môi phần tư là 1 số nguyên. Thưc hiện các yêu cầu sau:a. Tinh tông các phân tử trong mangb. Tinh tông các phân tử nằm phia trên đường chéo chinh. (Đường chéo chinh là đường chéo chứa các phân tử có tọa độ dòng bằng tọa độ cột)HD: Chỉ tinh tông các phân tử có chỉ số cột lớn hơn chỉ số dòngc. Tinh tông các số nguyên tố trong mangd. Điểm “yên ngựa” là điểm mà giá trị của nó lớn nhất trên dòng và nhỏ nhất trên cột. Yêu câu tìm và in ra màn hình tất ca các điểm “yên ngựa” trên mang. Trường hợp không có thì in ra màn hình “KHONG CO”Bài 2. Tạo bảngCho một bang A gồm N x N số nguyên (N ¿ 1000), các dòng được đánh số từ trên xuống dưới băt đâu từ 1, các cột được đánh số từ trái qua phai cũng băt đâu từ 1. Mỗi số trong bang có giá trị tuyệt đối không vượt quá 30000. Bang B được tạo ra từ bang A theo qui tăc sau:

Phần tử của B nằm ở dòng i, cột j có giá trị bằng tổng của các số nằm trong ô (i,j) và các ô kề nó trong bảng A: Bij = Aij+A(i+1)j+A(i-1)j+Ai(j+1)+Ai(j-1)

Chú ý: Các phần tử nằm ngoài bảng được xem như có giá trị bằng 0. Bài 3. Tổng lớn nhâtCho một bang 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 phai cũng băt đâu từ 1. Mỗi số trong bang có giá trị tuyệt đối không vượt quá 10000. Đường chéo chinh của bang là đường thẳng nối hai ô (1,1) và (N,N). Như vậy trên bang có 2N-1 đuờng chéo song song với đường chéo chinh.Bài toán: Hay tìm đường chéo song song với đường chéo chinh 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

Bai 4: Miền liên thông (Olympic 2011)

Cho bang số chữ nhật kich thước MxN ô vuông đơn vị (M dòng đánh số từ 1 đến M từ trên xuông, N cột đánh số từ 1 đên N từ trái sang). Mỗi ô ghi số 0 hoặc 1. Một miên 0 của bang số là tập hợp các ô chung cạnh và chứa số 0.

Yêu cầu: Hay xác định số miên 0 của bang số và miên 0 có diện tich lớn nhấtDư liêu vao: Từ file văn ban MIEN.INP- Dòng đâu ghi 2 số nguyên M và N (0<M,N≤100)- M dòng tiếp theo mỗi dòng ghi N số 0 hoặc 1, các số cách nhau it nhất một ky tự trăng.Dư liêu ra: Ghi vào file văn ban MIEN.OUT gồm 2 dòng- Dòng thứ nhất: ghi số lượng miên 0- Dòng thứ 2 ghi diện tich miên 0 có diện tich lớn nhấtVi du:

MIEN.INP MIEN.OUT Giải thich

4 51 0 0 0 10 1 0 0 11 0 1 1 11 0 0 0 0

3 5 1 0 0 0 10 1 0 0 11 0 1 1 11 0 0 0 0

Đường chéo

Page 21: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI TẬP XÂU(Ngay 18/10/2013)

Bài 1: Nhập vào từ bàn phim 1 xâu và in ra màn hình sau khi xóa bỏ các ky tự trăng dư thừa

Các ky tự trăng dư thừa khi: ky tự trăng đứng đâu xâu, đứng cuối xâu, nếu có 2 ky tự trăng đứng liên tiếp trong xâu thì có 1 ky tự trăng dư thừa

Bài 2: Nhập vào một xâu từ bàn phim và thay thế tất ca các cụm ky tự ‘anh’ bằng cụm ky tự ‘em’

Bài 3: Nhập từ bàn phim một xâu hay cho biết số lân xuất hiện của mỗi chữ cái tiếng anh trong xâu đó. không phân biệt chữ hoa hay chữ thường

Bài 4: Nhập vào từ bàn phim 1 xâu ky tự rồi in ra màn hình các từ của xâu đó theo thứ tự ngược lại. Vi dụ xâu St= ‘mot hai ba ta cung hat’ thì kết qua in ra màn hình là ‘hat cung ta ba hai mot’. Biết rằng hai từ được cách nhau bởi một dấu cách

Bài 5: Một cụm trong một biểu thức toán học là đoạn nằm giữa hai dấu đóng và dấu mở ngoặc đơn. Với mỗi biểu thức cho trước hay tách các cụm của biểu thức đó.

Vi dụ với biểu thức a*(x+1)*((b+2)/(y-3)) ta tách được thành các biểu thức (x+1); (b+2); (y-3); ((b+2)/(y-3))

Bài 6: Cho xâu S có không quá 250 ky tự. Hay tìm cách nén xâu S sao cho nếu có nhiêu ky tự liên tiếp giống nhau thì thay bằng 1 số nguyên và tiếp theo là ky tự đó. Vi dụ S=’AAAABCCC’ thì kết qua sau khi nén là S=’4AB3C’;

Yêu câu: Cho xâu S hay in ra màn hình sau khi nén xâu S

Bài 7: Nam đa làm được một chuỗi đá từ những viên đá màu mà cậu sưu tập được. Các viên đá của Nam có màu xanh, đỏ hoặc vàng, được ky hiệu tương ứng là G, R, Y. Theo Nam một chuỗi đá đẹp phai có đủ ca 3 màu trên và số lượng các viên đá mỗi màu phai bằng nhau.

Yêu câu: Cho xâu S có độ dài không quá 250 chỉ bao gồm các ky tự G, R, Y, mỗi ky tự tượng trưng cho một viên đá của Nam. Hay cho biết chuỗi đá của Nam có phai là chuỗi đá đẹp hay không?

Vi dụ: S= ‘RRGGYRYG’ => YES

S= ‘RGRGY’ => NO

Bài 8: Cho xâu S chỉ bao gồm các ky tự la tinh thường với độ dài tối đa 255 ky tự. Hay viết chương trình tạo xâu T bằng cách xóa các ky tự liên tiếp giống nhau trong xâu S và chỉ để lại 1 ky tự đại diện trong đoạn đó.

Vi dụ:

Cho S= ‘hhoooooocccsiiiiiinhhhhh’ => T= ‘hocsinh’

Bài 9: Sưa xâu

Hay viết chương trình nhập vào từ bàn phim một xâu ky tự, trong đó, nếu tinh từ trái sang phai thì ky tự # là dấu hiệu xoá đi một ky đứng ngay trước nó nếu có. Sau đó in ra màn hình xâu đa sửa chữa theo đúng qui định.

Vi du:

‘Ta#oi thi hoc sinua#h###nh gioi tin hoj#c’ có nghĩa là ‘Toi thi hoc sinh gioi tin hoc’

Dư liêu : Vào từ bàn phim xâu cân sửa.

Kết quả: In ra màn hình xâu đa sửa.

Page 22: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI TẬP(Ngay 13/10/2013)

012. TÀU CHIẾN

Em người bạn của Steve rất thich trò chơi băn tàu chiến. Nhưng trò chơi đó đa quá cũ và không tìm được ở đâu ca. Steve hứa sẽ viết lại chương trình trò chơi đó. Việc đâu tiên là phai lên sơ đồ bố tri tàu. Ban đồ bố tri tàu là lưới ô vuông kich thước n×m (1 ≤ n, m ≤ 1000). Tàu chiến là q ô tạo thành hình chữ nhật 1×q ô, nằm gọn trong ban đồ (1 ≤ q).

Steve đa bố tri được k tàu, tàu thứ i được xác định bởi tọa độ các ô đâu và cuối (x1i, y1i), (x2i, y2i), trong đó hoặc x1i = x2i hoặc y1i = y2i (1 ≤ x1i ≤ x2i ≤ n, 1 ≤ y1i ≤ y2i ≤ m, 0 ≤ k ≤ 104, i = 1 ÷ k). Hai tàu chiến bất kỳ phai không có điểm chung, dù là trên cạnh hay ở đỉnh. Hay tinh số kha năng vị tri có thể đặt thêm 1 tàu có kich thước 1x1.

Yêu cầu: Cho n, m, k và tọa độ (x1i, y1i), (x2i, y2i) của các con tàu. Đưa ra số vị tri có thể bố tri thêm một tàu kich thước 1×1.

Dữ liệu: Vào từ file văn ban SHIPS.INP:

Dòng đâu tiên chứa 3 số nguyên n, m và k, Dòng thứ i trong k dòng sau chứa 4 số nguyên x1i, y1i, x2i

và y2i.

Kết quả: Đưa ra file văn ban SHIPS.OUT một số nguyên – số kha năng bố tri tàu mới.

Ví dụ:

SHIPS.INP SHIPS.OUT

10 10 101 1 1 21 4 3 41 7 1 103 1 6 13 6 3 83 10 4 106 6 7 68 1 8 28 10 8 1010 6 10 10

17

1 2 3 4 5 6 7 8 9 10

2

3

4

5

6

7

8

9

10

1

Page 23: bài tập bồi dưỡng học sinh giỏi Tin học

MỘT SỐ BÀI TẬP CƠ BẢN(bai tập về nha 4-10-13)

Bai 1: Phân tich số nguyên dương N thành tich các số nguyên tố

Vi dụ: N=100

Phân tich thành N=2*2*5*5

Bai 2: Cho số nguyên N dương và day số nguyên A1, A2,…,AN trong đó A1<A2<…<AN và một số nguyên X. Hay tìm vị tri i trong day số sao cho Ai=X. Đưa ra màn hình là giá trị của i tìm được thỏa man điêu kiện Ai=X, ngược lại nếu không tìm được i thì thông báo 0

Giới hạn: N≤109

Bai 3: Thống kê

Cho số nguyên dương N (N≤106) và day số nguyên dương A1, A2,…,AN trong đó mỗi phân tử có giá trị không vượt quá 106

Hãy cho biết:

+ Số lượng phân tử khác nhau

+ Số nguyên dương nhỏ nhất không xuất hiện trong day số

+ Số lượng giá trị lặp lại nhiêu nhất

Vi du day số 6 5 6 2 3 1 6 7 5

+ Số lượng phân tử khác nhau: 6 (chỉ gồm các số 1 2 3 5 6 7)

+ Số nguyên dương nhỏ nhất không xuất hiện trong day số: 4

+ Số lượng giá trị lặp lại nhiêu nhất: 3 (số 6 lặp lại 3 lân)

Page 24: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI TẬP NGÀY 5-10-13Bai 1. DẠ HỘI

Buôi dạ hội diễn ra rất vui vẻ và có rất đông người tới tham dự. Không ai biết được chinh xác những người nào đa tới và tông cộng có bao người đa tham dự. Steve là một trong những người tham dự, cho biết là dạ hội này cũng đông và vui như buôi dạ hội tuân trước, cứ mỗi m2 của phòng dạ hội có m người.

Hôm sau 5 tờ báo địa phương tường thuật vê buôi dạ hội và thông báo vê số người tham dự. Mỗi tờ báo có một số liệu thống kê riêng của mình.

Yêu cầu: Cho m, p – diện tich của phòng dạ hội (theo m2), 5 số liệu mà các tờ báo đa cung cấp. Hay xác định độ lệch của số liệu nêu trên báo với con số dẫn xuất từ thông tin của Steve, tức là hiệu của số liệu đa nêu với số do Steve tinh. Các số liệu đăng trên báo có giá trị không vượt quá 106.

Dữ liệu: Vào từ file văn ban PARTY.INP:

Dòng đâu tiên chứa 2 số nguyên m và p, Dòng thứ 2 chứa 5 số nguyên – số liệu đăng trên báo.

Kết quả: Đưa ra file văn ban PARTY.OUT trên một dòng năm hiệu tìm được.

Ví dụ:

PARTY.INP PARTY.OUT

5 20

99 101 1000 0 97

-1 1 900 -100 -3

Bai 2. HÁI NẤM

Trước mặt Mario là một day 10 cây nấm xếp thành một hàng dài, mỗi cây nấm có một giá trị riêng, là một số nguyên không vượt quá 100. Mario không cân phai hái hết nấm mà chỉ cân đạt tông giá trị càng gân 100 càng tốt và chỉ được hái liên tục các cây nấm cạnh nhau. Nếu có hai kha năng gân 100 tương đương nhau (vi dụ 98 và 102) Mario sẽ chọn phương án có giá trị lớn hơn.

Yêu cầu: Cho giá trị các cây nấm theo trình tự từ trái sang phai. Hay xác định tông giá trị nấm Mario hái được.

Dữ liệu: Vào từ file văn ban MUSHROOM.INP gồm 10 dòng, mỗi dòng chứa một số nguyên, dòng thứ i xác định giá trị cây nấm i.

Kết quả: Đưa ra file văn ban MUSHROOM.OUT một số nguyên – tông giá trị nấm Mario hái được.

Ví dụ:

MUSHROOM.INP

MUSHROOM.OUT

1

2

3

5

8

13

21

34

55

79

110

Bai 3. Trò chơi xây nha Tên chương trình: BUILD.???

Trong các trò chơi, Bi thich nhất chơi trò xây nhà cao tâng. Để thực hiện trò chơi này Bi thường lấy các khối hình vuông có độ cao 1 để chồng lên nhau, Bi muốn xây nhà càng cao càng tốt nên đa săp những khối hình vuông lớn ở dưới và khối hình vuông nhỏ ở trên. Một hôm, chú của Bi đi công tác vê tặng cho Bi rất nhiêu khối hình vuông khác, Bi quyết định ngay là xây thêm một tòa nhà nữa, chỉ trong chốc lát Bi đa hoàn thành nhưng

Page 25: bài tập bồi dưỡng học sinh giỏi Tin học

rồi Bi nghĩ sẽ gộp hai tòa nhà lại để được một tòa nhà có độ cao bằng tông của 2 tòa nhà cũ. Nếu phai tháo hết ca hai tòa nhà rồi ghép lại thì rất mất thời gian. Bạn hay giúp Bi thực hiện công việc đó

Dư liêu vao: Từ file BUILD.INP

+ Dòng đâu tiên là số nguyên dương N cho biết độ cao của của ngôi nhà thứ nhất (1≤N≤106)

+ N dòng tiếp theo dòng thứ i là một số nguyên dương cho biết kich thước của khối hình vuông thứ i dùng để xây ngôi nhà thứ nhất

+ Dòng thứ N+2 là số nguyên dương M cho biết độ cao của ngôi nhà thứ hai (1≤M≤106)

+ M dòng tiếp theo dòng thứ j là một số nguyên dương cho biết kich thước của khối hình vuông thứ j dùng để xây ngôi nhà thứ 2

Dư liêu ra: Ghi vào file BUILD.OUT gồm N+M dòng trong đó dòng thứ i cho biết kich thước của khối hình vuông thứ i trong tròng nhà mới

Giới hạn: Các số nguyên dương đêu ≤ 109

Vi du:

BUILD.INP BUILD.OUT

2

7

2

3

8

7

4

8

7

7

4

2

Page 26: bài tập bồi dưỡng học sinh giỏi Tin học

DÃY NHỊ PHÂNMột day nhị phân độ dài n (n≤10) là một day x=x1x2…xn trong đó xi ∈{0,1}, i=1,2,…,n. Hay liệt kê tất ca

day nhị phân độ dài n

Vi du:

Dư liêu vao Dư liêu raN=3 000

001010011100101110111

BÀI TOÁN RÚT TIỀN TỰ ĐỘNG ATMMột máy ATM hiện có n (n≤20) tờ tiên có giá trị t1, t2,…,tN. Hay đưa ra một cách tra lời với số tiên đúng bằng S. Dư liêu vao: từ tệp văn ban ATM.INP+ Dòng đâu chứa 2 số n và S+ Dòng thứ 2 gồm n số t1, t2,…,tn

Kết quả ra: ghi vào tệp văn ban ATM.OUT có dạng: Nếu có thể tra đúng S thì đưa ra cách tra, nếu không thì ghi -1.Vi du:

ATM.INP ATM.OUT10 390200 10 20 20 50 50 50 50 100 100

20 20 50 50 50 100 100

NGƯỜI DU LỊCH

Cho N thành phố đánh số từ 1 đến N và các tuyến đường giao thông hai chiêu giữa chúng, mạng lưới giao thông này được cho bởi mang 2 chiêu C[1..N,1..N], ở đây Cij=Cji là chi phi đi đoạn đường trực tiếp từ thành phố i đến thành phố j.

Một người đi du lịch xuất phát từ thành phố 1, muốn đi thăm tất ca các thành phố còn lại mỗi thành phố đúng một lân và cuối cùng quay lại thành phố 1. Hay chỉ ra cho người đó hành trình với chi phi it nhất.

Dư liêu vao: từ tệp văn ban TSP.INP

+ Dòng đâu chứa số nguyên N (1≤N≤20) là số lượng thành phố+ N dòng tiếp theo mỗi dòng N số mô ta mang CDư liêu ra: Ghi vào tệp văn ban TSP.OUT

+ Dòng đâu là chi phi nhỏ nhất+ Dòng thứ 2 mô ta hành trìnhVi dụ:

TSP.INP TSP.OUT Hình minh họa TSP.INP TSP.OUT Hình minh họa40 20 35 4220 0 34 3025 24 0 1242 30 12 0

971 2 4 3 1

40 20 35 1020 0 90 5035 90 0 1210 50 12 0

1171 2 4 3 1

Page 27: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1. HOÁN VỊ

Cho xâu S (độ dài không vượt quá 10) chỉ gồm các ky tự từ ‘A’ đến ‘Z’ (các ky tự trong xâu S đôi một khác nhau). Hay liệt kê tất ca các hoán vị khác nhau của xâu S

Vi du:

Dữ liệu vào Dữ liệu raXYZ XYZ

XZYYXZYZXZXYZYX

Page 28: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 4: CHIA NHÓM

Cho day số A gồm N (N≤10) số nguyên a1, a2,…,aN và một số nguyên dương K (1<K<N). Hay đưa ra một cách chia day số thành K nhóm mà các nhóm có tông bằng nhau

Vi du:

Dữ liệu vào Dữ liệu raN=5; K=3Day số: 1 4 6 9 10

Nhóm 1: 1 9Nhóm 2: 4 6Nhóm 3: 10

Bai 5: PHÂN TICH

Cho số nguyên dương n (n≤10) và day số nguyên dương a1, a2,…,an (ai≤109). Tìm số nguyên dương m nhỏ nhất sao cho m không phân tich được dưới dạng tông của một số các số (mỗi số được sử dụng không quá 1 lân) thuộc n số trên.

Vi dụ:

Dữ liệu vào Kết qua raN=4Day số:1 2 3 6

13

Bai 6: Cho một xâu S chỉ gồm các ky tự từ ‘0’ đến ‘9’ có độ dài nhỏ hơn 11 và một số nguyên dương M. Hay đưa ra một cách chèn vào S các dấu ‘-’ và ‘+’ để thu được số M cho trước (Nếu có thể)Vi dụ: M=8; Xâu S=’1234567’ một cách chèn là: -1+2-3+4+5-6+7’

Page 29: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 8:Một xâu X=x1x2…xM được gọi là xâu con của xây Y=y1y2…yN nếu ta có thể nhận được xâu X từ xâu Y bằng

cách xóa đi một số ki tự, tức là tồn tại một day các chỉ số: 1≤i1<i2<…<im<N để x1= y i1

, x2 = y i2, xm = y im

Vi dụ: X= ‘adz’ là xâu con của xâu Y= ‘baczdtz’; i1=2<i2=5<i3=7Nhập vào một xâu S (độ dài không quá 15 ky tự chỉ gồm các ky tự từ ‘a’ đến ‘z’), Hay liệt kê tất ca các xâu con khác nhau của xâu S.Vi dụ:

Dữ liệu vào Dữ liệu raS= ‘aba’ 1. a

2. b3. aa4. ab5. ba6. aba

BÀI 9: TỔ HỢP

Một tô hợp chập K của N phân tử là một tập con gồm K phân tử gồm N phân tử

Vi dụ: tập {1,2,3,4} có các tô hợp chập 2 phân tử là {1,2} {1,3} {1,4} {2,3} {2,4} {3,4}

Cho số nguyên dương K và N (K≤N), hay liệt kê tất ca các tô hợp chập K của N phân tử

BÀI 10: CHỈNH HỢP LẶP

Chỉnh hợp lặp chập K của N phân tử là một day gồm K thành phân là một phân tử của tập N phân tử có xét thứ tự và không yêu câu các thành phân khác nhau.

Vi dụ: Day nhị phân độ dài M là một chỉnh hợp lặp chập 2 của M phân tử. Các day nhị phân có độ dài 3 là: 000, 001, 010, 011, 100, 101, 110, 111

Hay viết chương trình liệt kê tất ca các chỉnh hợp lặp chập K của N phân tử

BÀI 11: CHỈNH HỢP KHÔNG LẶP

Chỉnh hợp không lặp chập K của N phân tử là một day K thành phân lấy từ tập N phân tử có xét thứ tự nhưng các thành phân không được giống nhau.

Vi dụ chỉnh hợp không lặp chập 2 của 3 phân tử: 1 2, 1 3, 2 1, 2 3, 3 1, 3 2.

Viết chương trình liệt kê tất ca các chỉnh hợp không lặp chập K của N phân tử (K≤N)

BÀI 12: BA LÔMột chiếc ba lô có thể chứa được một khối lượng w. Có n (n≤20) đồ vật được đánh số 1, 2,…,n. Đồ vật i có khối lượng ai và có giá trị ci. Cân chọn các đồ vật cho vào ba lô để tông các đồ vật có giá trị lớn nhất

Page 30: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1. DÃY NGOẶC

Cho số nguyên dương N (n≤10), hay liệt kê tất ca các cách khác nhau đặt n dấu ngoặc mở và n dấu ngoặc đóng đúng đăn?

Vi du:

Dữ liệu vào Dữ liệu raN=3

Hướng dẫn:

Bai 2. Cho số nguyên dương N (N≤20), hay liệt kê tất ca các xâu độ dài N chỉ gồm hai ky tự ‘A’ hoặc ‘B’ mà không có hai ky tự ‘B’ nào đứng cạnh nhau.

Vi du:

Dữ liệu vào Dữ liệu raN=4 AAAA

AAABAABAABAAABABBAAABAABBABA

Bai 3: Cho một xâu S chỉ gồm các ky tự từ ‘0’ đến ‘9’ có độ dài nhỏ hơn 11 và một số nguyên dương M. Hay đưa ra một cách chèn vào S các dấu ‘-’ và ‘+’ để thu được số M cho trước (Nếu có thể)Vi dụ: M=8; Xâu S=’1234567’ một cách chèn là: -1+2-3+4+5-6+7’

Page 31: bài tập bồi dưỡng học sinh giỏi Tin học

007 Cung điên (Olympic 2011)

Ở một vương quốc nọ có 1 vị vua và ông có N quy phi. Trên miếng đất hình vuông có kich thước NxN, nhà vua muốn xây dựng cho mỗi quy phi, mỗi người một cung điện (gia sử mỗi cung điện đêu nằm trên một manh đất kich thước 1x1). Vấn đê là các quy phi này có tinh ghen ghét nhau nên nhà vua không muốn các cung điện nhìn thấy nhau từ các hướng (ngang, dọc, chéo). Chi phi xây dựng các cung điện trên mỗi ô đất có thể có giá thành khác nhau. Nhà vua muốn xây dựng N cung điện với tông chi phi thấp nhất.

Yêu vầu: Bạn hay giúp nhà vua thực hiện công việc đó

Dư liêu vao: Từ file văn ban CUNGDIEN.INP gồm N+1 dòng

- Dòng đâu chứa số N (1≤N≤16)

- N dòng sau, mỗi dòng chứa N số là chi phi xây dựng tại ô đất tương ứng (Chi phi xây dựng cung điện trong một ô có giá trị nguyên từ 1 đến 100). Mỗi số cách nhau it nhất một khoang trăng

Dư liêu ra: Ghi ra file văn ban CUNGDIEN.OUT gồm một số duy nhất cho biết tông chỉ phi thấp nhất cho việc xây dựng. Gia sử dữ liệu luôn có lời giai

Vi du:

CUNGDIEN.INP CUNGDIEN.OUT43 4 12 36 1 7 12 4 1 512 3 8 7

15

*Giai thich: Các ô được chọn là (1,2), (2,4), (3,1), (4,3)

013. GIẢI MÃ SỐ

Các chữ số từ 1 đến 9 được ma hoá dưới dạng các từ chỉ chứa các ky tự a. b và c theo quy tăc sau:

Vi dụ số 132 sẽ được viết thành accb.

Yêu cầu: từ xâu ky tự cho trước, hay tìm số nguyên dương tương ứng.

Dữ liệu: Vào từ file văn ban DECODE.INP xâu chứa không quá 100 ky tự a,b, c.

Kết quả: Đưa ra file văn ban DECODE.OUT số tương ứng hoặc -1 nếu xâu không tương ứng với một số nguyên nào.

Ví dụ:

DECODE.INP DECODE.OUT

abcac 129

abccc 63

035. SỐ PHẲNG LẶNG

Số phẳng lặng là số mà ngoại trừ 2 chữa số đâu và cuối, mỗi chữ số còn lại đêu bé hơn trung bình cộng của chữ số đứng trước và sau nó, tức là với

x = an10n+an-110n-1+ . . .+a110+a0

Chư số  1  2 3 4 5 6 7 8 9

Mã  a  b cc bbc cbc abc bac aac cac

Page 32: bài tập bồi dưỡng học sinh giỏi Tin học

có ai <

ai+1+a i−1

2, i = 1 ÷ n-1

Steve say mê tìm hiểu vê các số phẳng lặng và muốn biết là với n nguyên cho trước (1 ≤ n ≤ 10) có tồn tại số phẳng lặng có đúng n chữ số và nếu có thì số lớn nhất là bao nhiêu.

Yêu cầu: Cho n. Hay xác định số phẳng lặng lớn nhất có đúng n chữ số. Nếu ko tồn tại – đưa ra số -1.

Dữ liệu: Vào từ file văn ban SMOOTH.INP gồm một dòng chứa số nguyên n.

Kết quả: Đưa ra file văn ban SMOOTH.OUT giá trị xác định được.

Ví dụ:

SMOOTH.INP SMOOTH.OUT

3 989

Page 33: bài tập bồi dưỡng học sinh giỏi Tin học

017. Dãy ABC

Cho trước số nguyên dương N (N≤100). Hay tìm một xâu chỉ gồm các ky tự A, B, C thỏa man 2 điêu kiện

+ Có độ dài N

+ Hai đoạn con bất kỳ liên nhau đêu khác nhau (đoạn con là một day liên tiếp các ky tự của xâu)

004 TÌM BIỂU THỨC

Cho xâu số N= ‘123456789’ và số nguyên M

Yêu cầu: Hay tìm cách chèn vào N các dấu cộng hoặc trừ để thu được biểu thức có giá trị bằng M (nếu có thể)

Dư liêu vao: Đọc từ file văn ban BTHUC.INP có nội dung duy nhất là số nguyên M

Dư liêu ra: Ghi vào file văn ban BTHUC.OUT. Ghi tất ca các biểu thức thu được nếu có, nếu không thu được biểu thức nào có giá trị bằng M thì ghi là “KHONG CO”

Vi du:

BTHUC.INP BTHUC.OUT

500 1-234-56+789

1-2+345+67+89

-12+34+567-89

1000 KHONG CO

010. Các ký tự

Trò chơi được mô ta như sau: trên một bang hình chữ nhật chia R hàng và C cột có các ky tự chữ hoa (A-Z) được viết trên mỗi ô của bang. Trước khi băt đâu trò chơi có một hình ở góc trên bên trái của bang(hàng 1, cột 1). Trong mỗi bước di chuyển, một người chơi có thể di chuyển hình đến vị tri các ô liên kê (lên trên, xuống dưới, sang trái, sang phai) với ràng buộc rằng hình không thể di chuyển đến vị tri kế tiếp nếu ô này chứa ky tự đa xuất hiện mà hình đa di chuyển qua. Mục đich của trò chơi là chơi để có nhiêu bước di chuyển nhất có thể được.

Viết chương trình xác định số vị tri tối đa trong bang mà hình có thể viếng thăm trong trò chơi.

Dư liêu vao: Vào từ tập tin văn ban LETTERS.INP

- Dòng thứ nhất chứa hai số nguyên R và C, được viết cách nhau bởi một dấu cách, (1 ≤ R, C ≤ 20 )

- R dòng tiếp theo chứa, mỗi dòng chứa 1 xâu ky tự. Mỗi dòng biểu diễn một hàng của bang.

Kết quả ra: Ghi vào tập tin văn ban LETTERS.OUT một số nguyên là giá trị lớn nhất các vị tri mà hình có thể di chuyển trên bang.

Vi du:

LETTERS.INP LETTERS.OUT2 4CAABADCB

3

3 6HFDFFBAJHGDHDGAGEH

6

Page 34: bài tập bồi dưỡng học sinh giỏi Tin học

004: LÁT NỀN

Cho nên nhà hình vuông cạnh n=2k (2≤k≤10) bị khuyết 1 phân tư tại góc trên phai (khuyết phân 2). Hay lát nên nhà đa cho bằng những viên gạch hình thước thợ tạo bởi 3 ô vuông đơn vị

Dư liêu vao từ tệp văn ban LATNEN.INP duy nhất một số nguyên dương k

Dư liêu ra ghi vào tệp LATNEN.OUT cách lát nên

Vi du:

LATNEN.INP LATNEN.OUT3 1 1 3 3 0 0 0 0

1 4 4 3 0 0 0 02 4 13 13 0 0 0 02 2 13 16 0 0 0 05 5 14 16 16 15 9 95 8 14 14 15 15 12 96 8 8 7 10 12 12 116 6 7 7 10 10 11 11

Page 35: bài tập bồi dưỡng học sinh giỏi Tin học

005: (Đề thi Olympic 30/4 năm 2012 – Khối 10) Cho day A gồm N số nguyên dương a1, a2,…,aN, mỗi số trong day A chỉ xuất hiện đúng 1 lân (1≤N,

ai≤100000)Yêu cầu: Tìm đoạn dài nhất gồm các phân tử trong day trên tạo thành một hoán vị các phân tử của tập giá trị

{1, 2, …, K} (1≤K≤N)Dư liêu vao: từ file văn ban PASWAP.INP+ Dòng 1: ghi số N+ Từ dòng 2 trở đi ghi N số a1, a2,…,aN giữa các số cách nhau it nhất một dấu cách hay dấu xuống hàngKết quả: ghi vào file PASWAP.OUTNếu không có đoạn nào thỏa man thì ghi 0Ngược lại: + Dòng 1: ghi imax là chỉ số đâu tiên của đoạn dài nhất tìm được trong day A + Dòng 2: ghi dmax là số phân tử của đoạn dài nhấtVi du:

PASWAP.INP PASWAP.OUT710 9 3 4 1 2 8

34

006. SỐ NHỎ NHẤT

Cho một số nguyên dương k và một xâu ki tự s. Xâu s chỉ gồm các ky tự là các chữ số ‘0’..‘9’ và các chữ cái la tinh thường ‘a’.. ‘z’, trong đó có it nhất k ki tự là chữ số. Viết chương trình loại bỏ một số ky tự ra khỏi xâu s sao cho k ky tự còn lại theo đúng thứ tự đó tạo nên số nhỏ nhất. Trong k ky tự còn lại có thể cho phép các chữ số 0 đứng đâu.

Dữ liệu vào: từ file văn ban MIN.INP gồm 2 dòng. Dòng thứ nhất chứa số nguyên dương k (k<=10). Dòng thứ hai chứa xâu s có độ dài nhỏ hơn 250.

Kết quả: Ghi ra file MIN.OUT gồm một dòng ghi k ki tự còn lại tạo nên số nhỏ nhất.

Ví dụ:

MIN.INP MIN.OUT47mn04ngpt2012

0012

007. Xoa số

Bờm rất yêu thich số học. Hiện nay, Bờm đang nghiên cứu vê các số tạo thành bởi việc ghép các số nguyên tố liên tiếp lại với nhau. Theo đố, số thứ n có tinh chất này được tạo thành bằng cách ghép số nguyên tố thứ nhất, thứ hai, ..., cho đến thứ n theo thứ tự từ trái sang phai. Các số đâu tiên của day số có tinh chất này là:

2, 23, 235, 2357, 235711,... Bờm ky hiệu số thứ n của day số là an.Trong bài toán này, bạn cân lập trình giúp Bờm xóa k chữ số ra khỏi số a n sao cho số còn lại thu được là lớn

nhất có thể.Dư liêu vao: tư têp KDEL.INPGồm một dòng duy nhất chứa hai số nguyên n và k (1 ≤ n ≤ 50000, k không âm và nhỏ hơn số chữ số của

an).Dư liêu ra: ghi vao têp KDEL.OUTGồm một dòng duy nhất chứa số lớn nhất thu được sau khi xóa đúng k chữ số ra khỏi số an. Vi du:

KDEL.INP KDEL.OUT

5 4 71

Page 36: bài tập bồi dưỡng học sinh giỏi Tin học

008. DÃY HẤP DẪN

Day 2×k số nguyên gọi là hấp dẫn nếu ca tông k phân tử đâu lẫn tông k phân tử cuối đêu không lớn hơn s cho trước.

Yêu cầu: Cho n, s và các phân tử a1, a2, . . ., an (2 ≤ n ≤ 105, 1 ≤ s ≤ 2× 109). Các số ai đêu nguyên dương

và tông của chúng không vượt quá 2×109. Với mỗi i, i= 1 ÷ n, hay xác định độ dài day con hấp dẫn dài nhất

gồm các phân tử liên tiếp nhau băt đâu từ phân tử ai.

Dữ liệu: Vào từ file văn ban INTEREST.INP:

Dòng đâu tiên chứa 2 số nguyên n và s, Dòng thứ i trong n dòng sau chứa số nguyên ai.

Kết quả: Đưa ra file văn ban INTEREST.OUT n số nguyên, mỗi số trên một dòng, số thứ i là độ dài day

con thú vị gồm các phân tử liên tiếp nhau băt đâu từ phân tử ai.

Ví dụ:

INTEREST.INP INTEREST.OUT8 311111111

66644220

Page 37: bài tập bồi dưỡng học sinh giỏi Tin học

009. V11WATER

Nguồn: http://vn.spoj.com/problems/V11WATER/

Năm 2011, tình trạng ngập lụt trong thành phố trở lên nghiêm trọng hơn. Vì vậy, mọi người quyết định xây dựng hệ thống mái che cho toàn thành phố.

Mái che có bê rộng là N, được chia làm N phân có độ dài như nhau. Độ cao của mỗi phân là h1, h2, ..., hn. Khi trời mưa, một phân nước sẽ đọng lại trên mái và một phân sẽ thoát ra ngoài theo hai bên trái và phai của mái che. Do đó, thành phố sẽ không phai chịu canh mưa lụt như trước.

Nhằm mục đich bao trì mái che, bạn cân viết chương trình tinh lượng nước lớn nhất có thể đọng lại trên mái che.

Dư liêu vao: từ tệp V11WATER.INP

+ Dòng đâu ghi số N. (1 <= N <= 100000)

+ Dòng sau ghi N số tự nhiên h1, h2, ..., hn. (1 <= hi <= 100000)

Gồm một số duy nhất thể hiện lượng nước tìm được.

Dư liêu ra: ghi vào tệp V11WATER.OUT

+ Môt số duy nhất thể hiện số lượng nước tìm được

Giới hạn: 50% số test có N <= 1000.

Vi du:

V11WATER.INP V11WATER.OUT

5

1 3 1 2 3

3

Page 38: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1: DÃY SỐ

Xét day số nguyên a1, a2, . . ., an , . . ., trong đó a1 = 1, an được xác định như sau: đao ngược thứ tự viết các chữ số của an-1 (trong hệ cơ số 10) và cộng thêm 2 vào số nhận được.

Phân đâu của day số này có giá trị như sau:Chỉ số 1 2 3 4 5 6 7 8 . . .Dãy a 1 3 5 7 9 11 13 33 . . .

Yêu cầu: Cho số nguyên dương n. Hay xác định an (1 ≤ n ≤ 106).

Dữ liệu vào: từ file văn ban DAYSO.INP gồm nhiêu tests, mỗi test cho trên một dòng chứa một số nguyên n.

Kết quả: Đưa ra file văn ban DAYSO.OUT, kết qua mỗi test đưa ra trên một dòng.

DAYSO.INP DAYSO.OUT112

177

Bai 2: TÌM SỐ

Cho số nguyên X. Hay lập trình tìm số nguyên Y nhỏ nhất thoa man đồng thời các điêu kiện sau:

Điêu kiện 1: Y lớn hơn X.

Điêu kiện 2: Số lượng mỗi loại chữ số có trong Y đúng bằng số lượng loại chữ số tương ứng có trong X.

Dữ liệu: Vào từ tệp văn ban FINDNUM.INP gồm duy nhất số X (|X| ≤ 999999). Chữ số đâu tiên của X khác 0.

Kết quả: Ghi ra tệp văn ban FINDNUM.OUT số Y tìm được. Nếu không có số Y như vậy, ghi ra số 0.

VI DỤ FINDNUM.INP FINDNUM.OUTTest 2 330 0Test 3 -876200 -876020Test 4 100122 100212

Bai 3: SƯU TẬP ĐỒ CỔ

Bình rất thich trò chơi sưu tập đồ cô. Trò chơi này như sau: Đâu tiên Bình chỉ có một món đồ cô với độ tuôi 1 ngày. Trong N ngày tiếp theo, ngày thứ i, cậu ghi lại độ tuôi của món đồ cô mà mình có sau đó cậu bô sung thêm một đồ vật có độ tuôi Xi ngày vào bộ sưu tập của mình. Công việc tưởng chừng đơn gian nhưng khi số lượng đồ cô tăng lên và đặc biệt sau mỗi ngày độ tuôi của món đồ cô lại tăng lên 1. Bạn hay viết chương trình giúp Bình xác định độ tuôi của món đồ cô nhất sau N ngày sưu tập

Dữ liệu vào từ tệp COLLECTO.INP với cấu trúc như sau

+ Dòng đâu ghhi số N (N≤100000)

+ N dòng tiếp theo, dòng thứ i ghi số Xi

Dữ liệu ra ghi vào tệp COLLECTO.OUT ghi một số duy nhất là độ tuôi của món đồ cô nhất

Vi du:COLLECTO.IN

PCOLLECTO.OUT COLLECTO.INP COLLECTO.OUT

231

4 41122

5

Bai 4: Dãy liên tuc

Day số A1, A2,…,AN được gọi là day số liên tục nếu trong nó có mặt tất ca các số từ 1 đến N. Cho trước một day số A1, A2,…,AN. Hỏi phai thay bao nhiêu số trong day để được một day liên tục.

Dư liêu vao: Tệp văn ban PERMU.INP

Page 39: bài tập bồi dưỡng học sinh giỏi Tin học

+ Dòng đâu ghi số N (N 106)

+ N dòng còn lại với dòng i (i = 1..N) ghi số Ai (1 Ai 106)

Dư liêu ra: Tệp văn ban PERMU.OUT

Chỉ một dòng duy nhất ghi số các số cân thay đôi để day đa cho trở thành day liên tục.Vi du

PERMU.OUT PERMU.OUT32 1 3

0

PERMU.OUT PERMU.OUT22 2

1

Bai 5: COUNT NNguồn bài: http://vn.spoj.pl/problems/COUNTCBG/

Với 1 số tự nhiên N(1<= N <= 10^9) ta có thể phân tich nó thành tông của một số số tự nhiên liên tiếp (tất nhiên những số này phai nhỏ hơn N). Vi dụ với N = 5 ta có duy nhất 1 cách phân tich là 5 = 2+3. Bài toán đặt ra là cho số tự nhiên N, hay cho biết có bao nhiêu cách phân tich số tự nhiên N thành tông của các số tự nhiên liên tiếp.

Dư liêu vao từ tệp COUNTCBG.INP

Gồm nhiêu dòng`, mỗi dòng chứa một số nguyên N. (Giới hạn : số dòng <= 100)

Dư liêu ra ghi vào tệp COUNTCBG.OUT

Mỗi dòng ghi một số nguyên là số cách phân tich số N đọc được ở dòng tương ứng trong input.

Vi du:

COUNTCBG.INP COUNTCBG.OUT125413451002343175

110152515

2n=(x+y)*(y-x+1)

Đặt x+y=i => y-x+1=2n div i

Page 40: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 6. DÃY SỐ

Steve không tập trung tư tưởng trong giờ toán vì vậy thây giáo cho thêm bài tập vê nhà rèn luyện kha năng tập trung tư tưởng và tinh cẩn thận chu đáo.

Nội dung bài tập là cho n xâu chỉ bao gồm các ky tự la tinh thường và chữ số. Đoạn các ky tự số liên tục tạo thành một số nguyên. Ở mỗi đoạn ky tự số liên tục Steve phai trich ra số lớn nhất có thể, săp xếp các số nhận được từ các xâu đa cho và đưa ra theo thứ tự không giam, mỗi số được đưa ra dưới dạng không có các số 0 không có nghĩa.

Vi dụ, với n = 1 và xâu là 01a2b3456cde478 day số cân đưa ra là 1, 2, 478, 3456.

Yêu cầu: Cho số nguyên n (1 ≤ n ≤ 100) và n xâu, mỗi xâu có độ dài không quá 100. Hay đưa ra day số nhận được đa săp xếp theo thứ tự không giam, mỗi số trên một dòng.

Dữ liệu: Vào từ file văn ban NUMBERS.INP:

+ Dòng đâu tiên chứa số nguyên n,+ Mỗi dòng trong n dòng sau chứa một xâu chỉ gồm các ky tự la tinh thường và số.

Dữ liệu đam bao có không quá 500 số được tách ra.

Kết quả: Đưa ra file văn ban NUMBERS.OUT day số nhận được đa săp xếp theo thứ tự không giam, mỗi số trên một dòng.

Ví dụ:

NUMBERS.INP NUMBERS.OUT443silos0zita002le2sim231233

02243231233

Bai 7. WCALC

Nguồn bài: http://vn.spoj.com/problems/WCALC/

Khi còn bé, các bạn học sinh học được cách trừ phân số bằng cách quy đồng mẫu số, rồi mới thực hiện phép

trừ:

54− 9

12=15

12− 9

12= 6

12=1

2

Nhưng một lân, An tinh thử hiệu hai phân số bằng cách lấy hiệu hai tử số và hiệu hai mẫu số và thấy thật

ngạc nhiên là kết qua vẫn đúng:

54− 9

12= 5−9

4−12=−4

−8=1

2

An thấy tinh chất này thật kỳ diệu và An muốn biết, với phân số cho trước, có bao nhiêu cặp giá trị a>=0 và

m>=0 sao cho:

am

−bn= a−b

m−n

Dư liêu vao: từ tệp văn ban WCALC.INP: Một dòng chứa hai số nguyên dương b và n cách nhau it nhất một dấu cách (1 <= b, n <= 10^6; trong 50% số test b, n <= 1000).

Dư liêu ra: ghi vào tệp văn ban WCALC.OUT một số nguyên duy nhất là số lượng cặp (a,m) tinh được.

Vi du:

WCALC.INP WCALC.OUT

9 12 5

Page 41: bài tập bồi dưỡng học sinh giỏi Tin học

+ Tách các xâu số, đưa vào mang A có Na xâu số {0003,0003,4563}

A=rỗng// Na:=0; với Na là số lượng phân tử của A

Tách xâu S;

St=’’;S:=S+’a’;

For i:=1 to length(S) do

If S[i] là chữ số then St:=St+S[i]

Else if st<>’’ then begin

Inc(Na);A[Na]:=st;st:=’’;

End;

Vi dụ: S= ‘43lios0a’

+ Tìm độ dài max của xâu dài nhất

+ A[i]=’0’+A[i] sao cho length(A[i])=max

+ Săp xếp tăng

Page 42: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1: PALINDROME VÒNG

Palindrome là xâu dọc từ trái sang phai cũng giống như đọc từ phai sang trái, vi dụ xâu ‘madam’. Từ một xâu người ta có thể tạo ra xâu mới bằng cách đẩy vòng một số lân: đưa ky tự cuối xâu vê ghi ở đâu xâu. Vi dụ, từ xâu ‘array’, bằng cách đẩy vòng ta có thể nhận được các xâu:

array yarra ayarr rayar rrayaTrong số các xâu nhận được có một xâu là palindrome. Trong trường hợp này người ta nói ‘array’ là một

xâu palindrome vòng. Ban thân xâu palindrome cũng là xâu palindrome vòng (với số lân đẩy vòng bằng 0).

Yêu cầu: Cho xâu S không quá 100 ky tự. Hay xác định xem S có phai là xâu palindrome vòng hay không.

Dữ liệu: Vào từ file văn ban PALIN.INP gồm một dòng chứa xâu S.

Kết quả: Đưa ra file văn ban PALIN.OUT

+ Nếu S là xâu palindrome vòng thì ghi số lân it nhất cân phai đẩy vòng

+ Nếu S không phai là palindrome vòng thì ghi -1

Ví dụ:

PALIN.INP PALIN.OUTarray 3

Bai 2: TỔ ONG

Tô ong bao gồm nhiêu ô giống nhau hình lục bát. Các ô này để ở, chứa mật, sáp, ong non, . . . Ban đâu ong xây một ô. Sau đó xây tiếp các ô kê cạnh với ô ban đâu, làm thành lớp thứ hai, sau đó xây tiếp các ô kê cạnh với ô ở lớp thứ hai, làm thành lớp thứ 3, . . .

Người ta tìm thấy một tô ong lớn có tới n lớp. Hay xác định số ô của tô ong tìm thấy.

Dữ liệu: Vào từ file văn ban BEEHIVE.INP gồm một dòng chứa số nguyên n (1 ≤ n ≤ 109).

Kết quả: Đưa ra file văn ban BEEHIVE.OUT một số nguyên – số lượng ô trong tô ong.

Ví dụ:BEEHIVE.INP BEEHIVE.OUT4 37

Một lớp

Hai lớp Ba lớp

Page 43: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 3: DÃY SỐ

Cho day số F dài vô tận. Nguyên tăc xây dựng day F rất đơn gian.+ F[1] = 1+ Với i > 1, đâu tiên ta lấy F[i] = F[i - 1] * 2, sau đó săp xếp các chữ số trong F[i] theo thứ tự tăng dân. (Các

chữ số 0 ở đâu F[i], ta coi như là không có nghĩa và có thể xóa đi).Như vậy, các số đâu tiên trong day số F là: 1, 2, 4, 8, 16, 23, 46, 29, 58, ...Cho số n, bạn hay tìm số F[n]. Biết rằng số lượng chữ số của F[n] luôn nhỏ hơn 106.

Dư liêu vao: từ tệp C11SEQ3.INP chứa một số nguyên dương duy nhất là n (1 ≤ n ≤ 106).Dư liêu ra: ghi vào tệp C11SEQ3.OUT một số nguyên dương duy nhất là số cân tìm.Vi du:

C11SEQ3.INP C11SEQ3.OUT7 46

Bai 4: FIND THE COW!

Cô bò Bessie đa trốn thoát và đang trốn ở một đồi núi với những đồng cỏ cao. Nông dân John (FJ), người đang muốn tìm kiếm Bessie, đa quyết định bò trên đồng cỏ bằng tay và đâu gối để tìm ra dấu vết của Bessie. Không may thay, ông ta có một chút vấn đê với việc tìm kiếm Bessie: Day cỏ ở trước mặt FJ trông như một chuỗi ngoặc đơn có độ dài N (1≤ N≤ 50,000); vi dụ: )((()())()) FJ biết rằng chân sau của Bessie giống như một cặp dấu mở ngoặc đơn ((, và chân trước của cô ta giống như một cặp dấu đóng ngoặc đơn )). Vị tri của Bessie có thể được diễn ta bởi một cặp x < y , trong đó (( được tìm ở vị tri x, và )) được tìm ở vị tri y. Hay đếm có bao nhiêu vị tri mà Bessie có thể đang đứng.

Dư liêu vao: ghi từ tệp COWFIND.INP ghi một chuỗi ngoặc đơn có độ dài là NDư liêu ra: ghi vào tệp văn ban COWFIND.OUT một số nguyên cho biết vị tri Bessise đang đứngVi dụ:

COWFIND.INP COWFIND.OUT

)((()())()) 4

Giải thich: Các vị tri Bessise có thể đứng là: 1. )((()())()) 2. )((()())()) 3. )((()())()) 4. )((()())())

Bai 5: BÀI TOÁN DIỆN TICH TAM GIÁC

Cho một hình chữ nhật ABCD, cạnh AB=a, cạnh BC=b. a,b là các số nguyên dương trong khoang [1, 100]

Một điểm M chạy trong đoạn BC với BM=x . x là số nguyên duơng trong khoang [0, b], một điểm N chạy trong đoạn CD với CN=x

Tinh giá trị lớn nhất và giá trị nhỏ nhất của diện tich tam giác AMN khi M, N lưu động.

Dữ liệu vào: Được cho trong tập tin CHUNHAT.inp, gồm một dòng ghi hai số nguyên dương lân lượt là a, b. Hai số cách nhau một khoang trăng

Dữ liệu ra : Yêu câu xuất ra tập tin CHUNHAT.out, gồm bốn dòng:

+ Dòng đâu là giá trị lớn nhất của diện tich tam giác AMN (một chữ số thập phân)

+ Dòng thứ hai là một giá trị của x để diện tich tam giác AMN đạt giá trị lớn nhất

+ Dòng thứ ba là giá trị nhỏ nhất của diện tich tam giác AMN (một chữ số thập phân)

+ Dòng thứ tư là một giá trị của x để diện tich tam giác AMN đạt giá trị nhỏ nhất

Vi du:

CHUNHAT.INP CHUNHAT.OUT

10 6 30.0

0

17.5

Page 44: bài tập bồi dưỡng học sinh giỏi Tin học

5

Bai 6: VIP-NUMBER

Cho một bang A là một lưới ô vuông kich thước NxN (3≤N≤1000) gồm các số nguyên dương không quá 1000. Ta gọi giao của dòng i cột j là ô A[i,j] với (1≤i,j≤N). Một Vip-Number được định nghĩa là phân tử lớn nhất so với các ô kê cạnh của nó. Vi dụ ô A[i,j] chứa Vip-Number nếu Max (A[i-1,j] ; A[i,j-1] ; A[i+1,j] ; A[i,j+1]) < A[i,j] và (1<i,j<N).

Yêu cầu: Cho trước một số nguyên dương N là kich thước của bang A, yêu câu đếm số lượng Vip-Number trong bang A.

Dư liêu: Cho bởi file văn ban VIPNUM.INP:

+ Dòng đâu chứa số nguyên dương N.

+ N dòng sau, mỗi dòng gồm N số nguyên dương biểu diễn bang.

Kết quả: Ghi ra file văn ban VIPNUM.OUT gồm một dòng duy nhất là kết qua tìm được.

Vi du:

VIPNUM.INP VIPNUM.OUT41 2 1 11 3 2 11 2 5 21 3 2 5

2

Bai 7: THIẾT KẾ LỚP HỌC TRƯỢT TUYẾT

Nông dân Jonh (FJ) có N (2≤N≤1000) ngọn đồi, mỗi ngọn đồi có chiêu cao là một số nguyên trong phạm vi từ 1 đến 100. Trên những ngọn đồi này có rất nhiêu tuyết bao phủ vì vậy FJ quyết định mở lớp học trượt tuyết cho các con bò của ông.

Thật không may FJ nhận được dự án thay đôi cách thu thuế của chinh phủ trong năm tới, theo dự án thì chinh phủ sẽ đánh thuế những người nông dân rất cao nếu như độ chênh lệnh giữa ngọn đồi cao nhất và thấp nhất lớn hơn 17.

Biết được sơ hở của dự án này FJ quyết định cai tạo lại một số ngọn đồi của mình sao cho độ chênh lệnh giữa ngọn đồi cao nhất và thấp nhất nhỏ hơn hoặc bằng 17, có như vậy mới không bị đánh thuế

Biết răng chi phi tiên để thay đôi độ cao của một ngọn đồi từ A thành B là (A-B)2 đơn vị. Hay giúp FJ chọn những qua đồi để thay đôi độ cao sao cho chi phi là it nhất

Dư liêu vao: từ tệp SKINDESIGN.INP

+ Dòng đâu tiên chứa số nguyên dương N

+ N dòng tiếp theo mỗi dòng chứa một số nguyên Ai thể hiện độ cao của qua đồi thứ i

Dư liêu ra: ghi vào tệp SKINDESIGN.OUT một số nguyên duy nhất là chi phi nhỏ nhất tìm được

Vi du:

SKINDESIGN.INP SKINDESIGN.OUT520412421

18

Page 45: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 8: ZIC-ZAC (gửi)

Lập trình tạo ma trận kich thước NxN.

Vi dụ với N=5

1 2 6 7 153 5 8 14 164 9 13 17 2210 12 18 21 2311 19 20 24 25

Bai 9: XOÁY

Lập trình tạo ma trận kich thước NxN.

Vi dụ với N=5

1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9

Page 46: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1: Chia đoạn một dãy số

Cho day số tự nhiên A1, A2,…,AN. Hay tìm cách chia day số trên thành nhiêu đoạn nhất sao cho tông các số trong tất ca các đoạn con đêu bằng nhau

Dư liêu vao: từ tệp văn ban CHIA.INP

+ Dòng đâu tiên ghi số N

+ Dòng thứ 2 ghi N số A1, A2,…,AN. Các số cách nhau 1 ky tự trăng

Dư liêu ra: ghi vào tệp văn ban CHIA.OUT hai số K và S, trong đó K là số đoạn chia được và S là tông của mỗi đoạn. Trong trường hợp không thể chia được thì K=0 và S=0

Vi du:

CHIA.INP CHIA.OUT63 5 1 7 8 0

3 8

Bai 2: Sắp xếp xâu.Người ta định nghĩa: Từ là một nhóm ky tự liên tiếp không chứa ky tự trăngCho một xâu St gồm các ky tự lấy từ tập ‘a’ .. ‘z’ và dấu cách. Xâu không quá 20 từ, mỗi từ dài không

quá 10 ky tự.Yêu cầu: Săp xếp các từ của xâu ky tự theo thứ tự không giam của độ dài các từ trong xâu St.Dữ liệu vào: Cho trong file văn ban SAPXAU.INP, có cấu trúc:- Dòng 1: Ghi một xâu ky tự St (có it nhất 1 từ). Dữ liệu ra: Ghi ra file văn ban SAPXAU.OUT, theo cấu trúc:- Dòng 1: Ghi các từ của xâu ky tự sau khi được săp xếp. Các từ được ghi cách nhau đúng một dấu cách.Ví dụ:

SAPXAU.INP SAPXAU.OUTacb abcde abcd abc acb abc abcd abcde

Bai 3: Dãy con liên tiếpCho day số nguyên dương gồm N phân tử A1, A2,…, An.

Yêu cầu: Hay liệt kê tất ca các day con gồm các phân tử đứng liên tiếp của day trên sao cho tông giá trị các phân tử của day con đó bằng M.Dữ liệu vào: Cho trong file văn ban DAYCON.INP, có cấu trúc như sau:- Dòng 1: Ghi 2 số nguyên dương N và M. Hai số được ghi cách nhau it nhất một dấu cách. (1 ¿ N ¿ 1000; 1 ¿ M ¿ 32000)- Dòng 2: Ghi N số nguyên dương Ai. Các số được ghi cách nhau it nhất một dấu cách. (1¿ Ai ¿ 10000 )Dữ liệu ra: Ghi ra file văn ban DAYCON.OUT, gồm nhiêu dòng. Mỗi dòng ghi một day con tìm được. Các day con được ghi theo thứ tự xuất hiện của nó trên day ban đâu. Các số trên cùng một dòng được ghi cách nhau it nhất một dấu cách.

Nếu không tìm được day con thỏa man điêu kiện thì ghi ra file một số: 0.Ví dụ:

DAYCON.INP DAYCON.OUT11 61 4 3 1 2 1 6 5 1 4 1

3 1 265 11 4 1

5 61 2 5 2 1

0

Bai 4: Biến đổi số

Xét một số N có 4 chữ số và không phai tất ca các chữ số đêu giống nhau. Phép tinh độ lệch được thực hiện như sau:

+ Tạo số thứ nhất N1 bằng cách xếp các chữ số theo trình tự giam dân

Page 47: bài tập bồi dưỡng học sinh giỏi Tin học

+ Tạo số thứ hai N2 bằng cách xếp các chữ số theo trình tự tăng dân (nếu có chữ số 0 ở đâu thì N2 sẽ không phai là số có 4 chữ số)+ Tinh hiệu N1-N2 và gán lại cho N

Các bước trên được thực hiện cho đến khi nhận được số N là 6174 hoặc 0Vi dụ: Nếu N=1023

+ Ở bước 1: N1=3210, N2=123, N=N1-N2=3087+ Ở bước 2: N1=8730, N2=378, N=N1-N2=8352+ Ở bước 3: N1=8532, N2=2358, N=N1-N2=6174

Vậy ta cân thực hiện 3 lân biến đôiYêu cầu: Hay xác định số lân biến đôi thực hiện theo yêu câu trên.Dư liêu vao: từ tệp BIENDOI.INP ghi số nguyên dương NKết quả ra: ghi vào tệp BIENDOI.OUT một số nguyên duy nhất cho biết số lân biến đôiVi du:

BIENDOI.INP BIENDOI.OUT5364 3

Page 48: bài tập bồi dưỡng học sinh giỏi Tin học

1 1 1 2 3 31 2 3 1 1 2Nếu length(A[i])=length(A[i-1]) thì B[i]=B[i-1]+1 else B[i]:=1;

Bai 1: Số rắn hai đầu

“Số răn hai đâu” là một số nguyên dương N sao cho: Khi thêm hai chữ số a, b vào hai đâu số N ấy (theo

dạng aNb ) sẽ được số mới có giá trị nâng lên 99 lân. Tức là: aNb=99 N .

Yêu cầu: Cho trước hai chữ số nguyên a, b (0 ≤ a, b ≤ 9). Tìm “Số răn hai đâu” N.

Dữ liệu vào: Cho trong tệp văn ban TWOHEAD.INP gồm 2 số a, b cách nhau một dấu cách.

Kết quả: Ghi vào tệp văn ban TWOHEAD.OUT chứa số N cân tìm. Trong trường hợp có nhiêu hơn một số N

thỏa man, hay đưa ra số bé nhất. Cho biết dữ liệu vào luôn tồn tại kết qua.

Ví dụ:

TWOHEAD.INP TWOHEAD.OUT

8 1 9

K=số lượng chư số của B

A*10m+k+N*10k+b=99N

=> a*10m+1+b=89 *N

For m:=0 to 9 do

If (a*10m+1+b) mod 89) then

Begin

Writeln(a*10m+1+b) div 89);

Break;

End;

10m+1=(89N-b)/a

Bai 2. BỘ SỐ PY – TA – GO

Một bộ ba số tự nhiên được gọi là bộ số Py-ta-go nếu thỏa man điêu kiện: bình phương một số bằng tông bình phương hai số còn lại.

Vi dụ: Bộ số (3, 4, 5) là một bộ số Pytago vì : 52=32+42.Cho số nguyên dương N. Yêu câu hay phân tich N thành tông của một bộ số PytagoDư liêu vao: Từ tệp PYTAGO.INP chứa số nguyên N (1≤N≤106)Kết quả ra: ghi vào tệp PYTAGO.OUT số lượng bộ số Pytago tách đượcVi du :

PYTAGO.INP

PYTAGO.OUT Giải thich

30 1

Mà 132=52+122

Page 49: bài tập bồi dưỡng học sinh giỏi Tin học

A2+b2=c2

N=a+b+c

Bai 3. Nguyên liêu sản xuât

Một người dùng số tiên là U đô-la và V Euro để mua một loại nguyên liệu san xuất. Có N công ty nước ngoài bán nguyên liệu trên được đánh số từ 1 đến N. Công ty thứ i (1≤i≤N) có giá bán Ai đô-la/1 kg nguyên liệu và Bi Euro/1 kg nguyên liệu. Tuy nhiên, tại mỗi công ty chỉ bán nguyên liệu cho một khách hàng hoặc theo đô-la, hoặc theo Euro. Hay giúp người đó tìm cách chọn ra 2 công ty để mua hàng sao cho số lượng nguyên liệu san xuất có thể mua được là nhiêu nhất.

Dư liêu vao: Từ tệp văn ban PROMATE.INP

+ Dòng đâu chứa 3 số nguyên: N U V (1≤N, u, v≤1000)

+ N dòng tiếp theo chứa N cặp số nguyên Ai, Bi (1≤Ai, Bi≤1000), mỗi cặp trên một dòng.

Dư liêu ra: Ghi vào tệp văn ban PROMATE.OUT Số lượng nguyên liệu S(kg) người đó mua được với 2 chữ số thập phân.

Vi du :

PROMATE.INP PROMATE.OUT3 2 56 43 58 7

S = 1.92

Giai thich vi dụ: Người đó mua nguyên liệu của công ty thứ 2 bằng đô-la và mua nguyên liệu của công ty thứ nhất bằng Euro S=2/3+5/4=1.92Max:=0;For i:=1 to N do For j:=1 to N do If(i<>j)and(u/A[i]+v/B[j]>max) then max:= u/A[i]+v/B[j];

Bai 4. SỐ PHONG PHÚ

Nguôn bai: http://vn.spoj.pl/problems/NKABD/

Trong số học, số phong phú là các số mà tông các ước số của số đó (không kể chinh nó) lớn hơn số đó. Vi dụ, số 12 có tông các ước số (không kể 12) là 1 + 2 + 3 + 4 + 6 = 16 > 12. Do đó 12 là một số phong phú.

Yêu cầu: Bạn hay lập trình đếm xem có bao nhiêu số phong phú trong đoạn [L,R].

Dư liêu vao: từ tệp NKABD.INP gồm 2 số L, R (1≤L≤R≤105)Dư liêu ra: ghi vào tệp NKABD.OUT là số lượng số phong phú trong đoạn [L, R].Vi du

NKABD.INP NKABD.OUT1 50 9

Giải thich:

Từ 1 đến 50 có 9 số phong phú là:

12, 18, 20, 24, 30, 36, 40, 42, 48Tinh tông ước của NTong:=1;For i:=2 to trunc(sqrt(N)) do If N mod i then tong:=tong+i+N div i;

Page 50: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1: TÌM SỐ NGUYÊN TỐ

Nguôn bài: http://vn.spoj.pl/problems/PNUMBER/

Yêu cầu: Hay tìm tất ca các số nguyên tố trong đoạn [A,B]

Dữ liệu vào từ tệp PNUMBER.INP gồm 2 số A, B nằm trên 1 dòng và cách nhau bằng 1 ky tự trăng. 1≤A≤B≤200000;

Dữ liệu ra ghi vào tệp PNUMBER.OUT ghi ra các số trong đoạn [A,B] mỗi số trên một dòng

Ví dụ:

PNUMBER.INP PNUMBER.OUT1 10 2

357

2 3 4 5 6 7 8 9 10 11 12

true true False true False False False False False

Mang 1 chiêu: A:array[1.200000] of boolean;

true;

For i:=2 to 200000 do

If A[i]=true then

Begin

J:=i*2;

While j≤200000 do

Begin

A[j]:=false;

J:=j+i;

End;

For i:=a to b do if A[i] then write(i:6);

Sàng số nguyên tố

Bai 2. SỐ THÂN THIỆN

Số tự nhiên có rất nhiêu tinh chất thú vị. Vi dụ với số 23, số đao ngược của nó là 32. Hai số này có ước chung lớn nhất là 1. Những số như thế được gọi là số thân thiện, tức là số 23 được gọi là số thân thiện, số 32 cũng được gọi là số thân thiện.

Yêu cầu: hay đếm xem trong khoang từ a đến b (kể ca a và b) có bao nhiêu số thân thiện. (10≤a≤b≤30000)

Dư liêu vao: từ tệp NKNUMFRE.INP gồm một dòng chứa 2 số a,b. Hai số được cách nhau bằng một khoang trăng

Dư liêu ra ghi vào tệp NKNUMFRE.OUT

Bao gồm một số nguyên là kết qua của bài toán.

Vi du

NKNUMFRE.INP NKNUMFRE.OUT

20 30 3

Bai 3: WORD COUNTING

Nguyên đang viết một phân mêm đếm từ trong một xâu ky tự. Cậu cam thấy buồn chán sau khi viết xong phân mêm rất nhanh. Bây giờ, cậu muốn tìm P là số lượng lớn nhất các từ có độ dài bằng nhau đứng liên tiếp trong xâu cho trước.

Page 51: bài tập bồi dưỡng học sinh giỏi Tin học

Cho một xâu chỉ chứa các ky tự từ a đến z và ky tự trống. Mỗi từ là một chuỗi các ky tự liên tiếp khác ky tự trống và các từ phân tách nhau bởi it nhất một ky tự trống. Nhiệm vụ của bạn là viết chương trình giúp Nguyên tìm số P nói trên.

Dư liêu vao: từ tệp WORDCNT.INP

Dữ liệu vào gồm nhiêu bộ dữ liệu tương ứng với nhiêu test. Dòng đâu tiên chứa một số nguyên dương không lớn hơn 20 là số lượng các bộ dữ liệu. Các dòng tiếp theo chứa các bộ dữ liệu.

Trên mỗi dòng tiếp theo chứa xâu ky tự có không quá 1000 từ tương ứng với mỗi bộ dữ liệu, mỗi từ có không quá 20 ky tự.

Dư liêu ra: ghi vào tệp WORDCNT.OUT

Với mỗi bộ dữ liệu, ghi ra trên một dòng số P mà Nguyên muốn tìm.

Vi du

WORDCNT.INP WORDCNT.INP2a aa bb cc def ghia a a a a bb bb bb bb c c

35

Page 52: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 3: Trò chơi thả bong

Cho một bang hình chữ nhật kich thước MxN, M là số dòng, N là số cột, các dòng và cột giao nhau thành các ô. Mỗi ô ban đâu là rỗng hoặc có bức tường. Minh tha bóng vào ô ở dòng đâu tiên của một cột nào đó. Qua bóng rơi theo quy luật sau:

+ Nếu ô vuông ở phia dưới qua bóng là bức tường hoặc qua bóng đa ở dòng cuối cùng của cột thì qua bóng sẽ nằm ở đó

+ Nếu ô vuông ở phia dưới qua bóng là rỗng thì qua bóng sẽ di chuyển xuống ô vuông đó

+ Nếu ô vuông ở phia dưới chứa một qua bóng khác thì qua bóng này sẽ di chuyển như sau:

- Nếu ô vuông bên trái và phia dưới của qua bóng là rỗng thì qua bóng sẽ trượt qua ô vuông bên trái và rơi xuống

- Nếu qua bóng không trượt được sang trái và ô vuông bên phai phia dưới rỗng thì qua bóng sẽ trượt qua phai

+ Các trường hợp còn lại qua bóng nằm yên không di chuyển

Minh sẽ không tha những qua bóng khác khi qua bóng trước đó đang di chuyển

Yêu cầu: Viết chương trình mô ta bang sau khi Minh tha tất ca các qua bóng vào bang

Chú y: Minh sẽ không bao giờ tha bóng vào cột mà ô trên cùng không rỗng

Dư liêu vao: Từ tệp văn ban THABONG.INP

+ Dòng đâu tiên chứa 2 số nguyên dương M và N (1≤M≤30000; 1≤N≤30)

+ M dòng tiếp theo mỗi dòng chứa N ky tự mô ta trạng thái ban đâu của bang. Ky tự ‘.’ mô ta trạng thái ô đó rỗng, ky tự ‘X’ mô ta trạng thái ô đó có bức tường

+ Dòng kế tiếp chứa số nguyên K (1≤K≤100000) là số bóng Minh tha

+ K dòng tiếp theo mỗi dòng chứa một số nguyên trong phạm vi từ 1 đến N là cột mà Bình tha bóng, Bình tha bóng theo thứ tự của dữ liệu vào

Dư liêu ra: ghi vào tệp văn ban THABONG.OUT gồm M dòng mỗi dòng chứa N ky tự mô ta trạng thái cuối cùng của bang. Qua bóng được biểu diễn bằng ky tự ‘O’

Vi du:

THABONG.INP THABONG.OUT THABONG.INP THABONG.OUT

5 4

….

….

X…

….

….

4

1

1

1

1

….

O…

X…

….

OOO.

7 6

……

……

…XX.

……

……

.XX…

……

6

1

4

4

6

4

4

……

…O..

…XX.

……

.OO…

.XX…

O..O.O

Page 53: bài tập bồi dưỡng học sinh giỏi Tin học

ĐỀ KIỂM TRA THỬBai 1: Xếp gạchMinh rất thich trò chơi xếp các chiếc hộp hình viên gạch. Minh đặt các viên gạch chồng lên nhau và xây

thành nhiêu chồng có độ cao khác nhau. Một lát sau Minh muốn xếp lại tất ca các chồng sao cho số lượng chồng không thay đôi nhưng số lượng các hộp trên mỗi chồng bằng nhau. Hay cho biết Minh cân di chuyển it nhất bao nhiêu chiếc hộp. Vi dụ: các chiếc hộp trước và sau khi xếp

Trước khi di chuyển Sau khi di chuyển Dư liêu vao: Từ tệp văn ban XEPGACH+ Dòng đâu tiên ghi số nguyên dương N cho biết số lượng chồng gạch+ Dòng thứ 2 ghi N số nguyên dương, số thứ i ghi số lượng viên gạch trên chồng thứ i. Lưu y rằng tông số

viên gạch bao giờ cũng chia hết cho NDư liêu ra: ghi vào tệp văn ban XEPGACH.OUT một số nguyên duy nhất cho biết số lượng viên gạch it

nhất cân di chuyểnVi dụ:

XEPGACH.INP XEPGACH.OUT65 2 4 1 7 5

5

Bai 2: Tam giác số

Hình sau mô ta một ban tam giác với các số nguyên không âm

73 8

8 1 02 7 4 4

4 5 2 6 5Hay viết chương trình để tinh tông lớn nhất các số trên đường đi từ đỉnh tam giác và kết thúc tại một điểm nào đó ở đáy tam giác. Biết:+ Mỗi bước đi ta được quyên đi xuống bên trái hoặc bên phai của số đó+ Số hàng trong tam giác lớn hơn 1và ≤100+ Các số trong tam giác đêu là số nguyên không âm và ≤100Dư liêu vao: Từ file TAMGIAC.INP gồm+ Dòng đâu ghi giá trị N (số lượng các dòng trong tam giác)+ Dòng i+1 (1≤i≤N) ghi i sốCác số cách nhau it nhất một khoang trăngDư liêu ra: Ghi vào file TAMGAC.OUT gồm một số duy nhất là tông lớn nhất tìm đượcVi du:

TAMGIAC.INP

TAMGIAC.OUT

573 88 1 02 7 4 4

30

Page 54: bài tập bồi dưỡng học sinh giỏi Tin học

4 5 2 6 5Bai 3: Thi đâu

Bang kết qua thi đấu vòng tròn của một giai vô địch bóng đá gồm N đội bóng được cho bởi ma trận vuông cấp N, trong đó tất ca các phân tử thuộc đường chéo chinh bằng 0, còn các phân tử khác có thể bằng 3, 1 hoặc 0. Đó là số điểm của các trận đấu: 3 – thăng, 1 – hòa, 0 – thua.

1. Hay tìm chỉ số của các đội không thua trận nào

2. Đếm số trận thăng, thua, hòa và tông số điểm của từng đội và in ra danh sách theo thứ tự giam dân của tông số điểm

Dư liêu vao: File văn ban THIDAU.INP gồm N+1 dòng

+ Dòng đâu là N

+ N dòng tiếp theo, dòng thứ i chứa N số là số điểm các trận đấu của đội thứ i. Mỗi số cách nhau it nhất một ky tự trăng

Dư liêu ra: File văn ban THIDAU.OUT

+ Dòng đâu tiên ghi chỉ số của các đội không thua trận nào, các số được xếp theo chiêu tăng và cách nhau it nhất một ky tự trăng

+ Các dòng còn lại là danh sách các đội được săp xếp theo thứ tự tông điểm giam dân, có 4 cột: Số thứ tự của đội, số trận thăng, số trận hòa, số trận thua và tông số điểm

Vi du:

THIDAU.INP THIDAU.OUT

5

0 1 0 0 1

1 0 0 0 0

3 3 0 0 1

3 3 3 0 1

1 3 1 1 0

4 5

Stt Thang Hoa Thua Diem

4 3 1 0 10

3 2 1 1 7

5 1 3 0 6

1 0 2 2 2

2 0 1 3 1

Page 55: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1: Đường đi cực đại

Tại một xứ sở nọ, nhà vua ban hành một luận rất kỳ lạ, để tha bỏng tù nhân, nhà vua ra lệnh xây dựng một lưới A có kich thước MxN, trên mỗi nút lưới ghi một số nguyên. Một người xuất phát từ một nút lưới của cột 1, chỉ cân sang được cột N (ô nào cũng được). Quy tăc là từ nút A[i,j] có thể di chuyển qua được 1 trong 3 nút A[i,j+1]; A[i+1,j+1]; A[i-1,j+1]. Nếu tù nhân nào đi hết lưới A (đến cột cuối cùng) mà tông các số đi qua là lớn nhất thì được tha bỏng

Yêu câu hay tìm một đường đi thỏa man quy tăc của nhà vua đê ra để giúp tù nhân được tha bông

Dư liêu vao: từ tệp văn ban MAXPATH.INP

+ Dòng đâu tiên chứa 2 số M và N

+ Trong i dòng tiếp theo mỗi dòng chứa N số nguyên là giá trị N số của hàng i trên lưới tương ứng với các cột từ 1 đến N

Dư liêu ra: ghi vào tệp văn ban MAXPATH.OUT ghi một số nguyên duy nhất có biết tông lớn nhất tìm được

Vi du:

MAXPATH.INP MAXPATH.OUT4 51 2 6 7 97 6 5 6 71 2 3 4 24 7 8 7 6

35

Bai 2: Dãy số

Cho 2 day số: A có n phân tử, B có m phân tử, các phân tử là các số nguyên x

Tinh số lượng giá trị trong A mà có mặt trong B

Yêu cầu: viết ra số lượng tìm được

Dư liêu vao: File AB.INP có dòng đâu là hai số n và m

Từ dòng thứ 2 lân lượt là n số của day A và m số của day B

0<m,n<105, |x|<109

Kết quả ra: File AB.OUT gồm 1 dòng ghi số lượng tìm được

AB.INP AB.OUT

3 4

2 5 6 7 5 5 6

2

Bai 3: GOING ONCE, GOING TWICE, GONE!

Nguồn bài: http://vn.spoj.pl/problems/AUCTION/

Chế độ ăn kiêng của đàn bò khiến cho nông trang của nông dân John dôi ra 1 số lượng cỏ khô, vì vậy anh ta muốn bán đấu giá số cỏ khô này để trang trai phân nào chi phi chăn nuôi. Anh ta có N (1 <= N <= 1,000) bó cỏ khô giống nhau; khách hàng sẽ đấu giá để mua đống cỏ này là M (1 <= M <= 1,000) nông dân khác sống gân đó.

Mỗi một nông dân i sẽ cho nông dân John biết anh ta sẵn sàng tra P_i (1 <= P_i <= 1,000,000) đồng cho 1 bó cỏ khô. Mỗi một nông dân chỉ muốn mua 1 bó cỏ khô mà thôi.

Để đam bao các nông dân không ghen tị với nhau, nông dân John sẽ đưa ra 1 mức giá cố định cho tất ca người đến mua và bán các bó cỏ khô cho những ai tra giá >= mức giá đó, những người còn lại sẽ bị từ chối giao dịch.

Hay giúp nông dân John tinh xem đặt mức giá nhỏ nhất là bao nhiêu để thu được nhiêu tiên nhất có thể.

Dư liêu vao: từ tệp AUCTION.INP

+ Dòng 1: Hai số nguyên cách nhau bởi dấu cách: N và M

+ Dòng 2..M+1: Dòng i+1 chứa 1 số nguyên duy nhất: P_i

Page 56: bài tập bồi dưỡng học sinh giỏi Tin học

Dư liêu ra: ghi vào tệp AUCTION.OUT

Gồm một dòng duy nhất chứa 2 số nguyên cách nhau bởi dấu cách: giá bán của John và số tiên mà John thu được

Vi du:

AUCTION.INP AUCTION.OUT

5 4

2

8

10

7

7 21

Bai 4. MINNUM

Cho số nguyên X chứa không quá 1000 chữ số, hay tìm số nguyên Y sao cho Y là số nhỏ nhất có giá trị lớn hơn X, trong đó các chữ số của Y được lấy từ tập các số nguyên phân biệt nhau {d1, d2,…d10} trong đó 0≤dk≤9; k≤10.

Dư liêu vao: Từ tệp văn ban MINNUM.INP

+ Dòng đâu chứa số nguyên K

+ Dòng thứ 2 chứa K số, số thứ i là giá trị của di

+ Dòng thứ 3 chứa số nguyên X

Dư liêu ra: ghi vào tệp MINNUM.OUT là số nguyên Y tìm được

Vi du:

MINNUM.INP MINNUM.OUT

3

3 0 5

18

30

Bai 5: CÁCH NHIỆT

Nguồn bài: http://vn.spoj.pl/problems/INSUL/

Cho một day N viên gạch lân lượt có độ cách nhiệt là các số a1.. aN. Nếu xếp lân lượt các viên gạch theo trình tự đó thì độ cách nhiệt ca khối là a1 + a2 + ... + aN + max(0, a2 - a1) + max(0, a3 - a2) + ... + max(0, aN - aN - 1). Nhiệm vụ của bạn là tìm cách xếp sao cho độ cách nhiệt của ca khối là lớn nhất có thể.

Dư liêu vao: từ tệp INSUL.INP

+ Dòng đâu ghi số nguyên dương N (0 < n ≤ 10^5).

+ N dòng sau mỗi dòng ghi một số ai ( 1 ≤ i ≤ N và 1 ≤ ai ≤ 10000).

Dư liêu ra: ghi vào tệp INSUL.OUT

Ghi trên một dòng kết qua cân tìm.

Vi du:

INSUL.INP INSUL.INP45417

24

Page 57: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1. NHÃN

Có 9 hàng gạch săp xếp thành một hình tam giác, hàng thứ i có i viên (Xem hình dưới). Mỗi viên gạch ở vị tri lẻ thuộc hàng lẻ được gán một nhan là một số nguyên không âm.

Yêu cầu: Hay xác định nhan của các viên còn lại, biết rằng, trừ hàng cuối cùng, nhan mỗi viên gạch bằng tông nhan các viên mà nó đè lên ở hàng dưới và nhan là số nguyên không âm.

Dữ liệu: Vào từ file LABEL.INP:

Dòng đâu tiên chứa số nguyên T – số lượng Tests,

Mỗi test cho trên 5 dòng, ghi nhan của các viên ở vị tri lẻ thuộc hàng lẻ.

Kết quả: Đưa ra file LABEL.OUT: kết qua mỗi test đưa ra trên 9 dòng xác định nhan của mọi viên gạch.

Ví dụ:

LABEL.INP LABEL.OUT

225554 6710 18 133 3 5 22 1 2 1 125664 6416 16 164 4 4 41 1 1 1 1

255121 13454 67 6723 31 36 3110 13 18 18 135 5 8 10 8 53 2 3 5 5 3 22 1 1 2 3 2 1 12 0 1 0 2 1 1 0 1256128 12864 64 6432 32 32 3216 16 16 16 168 8 8 8 8 84 4 4 4 4 4 42 2 2 2 2 2 2 21 1 1 1 1 1 1 1 1

Bai 2. CARO

Các bạn trẻ tìm thấy một cuốn vở nhỏ ai đó để quên trên ghế đá công viên. Trong cuốn vở này chỉ có các dòng số khó hiểu. Ban đâu các bạn của chúng ta nghĩ đây là thông báo ma hóa của một điệp viên nào đó định chuyển cho một người khác và đang tìm cách xử ly, nhưng may quá, người chủ cuốn vở đa quay lại tìm và giai thich đây chỉ là ghi chép các nước đi của một ván đấu trong trò chơi ca rô giữa 2 người trên trường ca rô vô hạn. Người thứ nhất dùng dấu chéo, người thứ hai – chữ o, mỗi người đến lượt mình đi sẽ đánh dấu của mình vào một ô trống tùy chọn. Ai tạo được trước day từ 5 ky hiệu trở lên của mình theo chiêu dọc hoặc ngang hay chéo thì sẽ thăng. Các bạn trẻ bị thu hút bởi ván đấu và muốn xác định xem ai đa thăng.Yêu cầu: Cho n – số nước đi của ván đấu (0 ≤ n ≤ 10 000), tọa độ các ô của mỗi nước đi, cho theo trình tự thực hiện nước đi. Hay các định xem ai thăng ván đấu này hoặc kết qua là hòa, đưa ra thông báo tương ứng First player won hay Second player won hoặc Draw. Nếu sau một nước đi nào đó đa xác định được người thăng nhưng người chơi vẫn được tiếp tục thực hiện nước đi thì thông báo Inconsistent.Dữ liệu: Vào từ file văn ban CARO.INP:

Dòng đâu tiên chứa số nguyên n, Mỗi dòng trong n dòng sau chứa 2 số nguyên x và y xác định tọa ô được đi (|x|, |y| ≤ 109).

Page 58: bài tập bồi dưỡng học sinh giỏi Tin học

Kết quả: Đưa ra file văn ban CARO.OUT dòng thông báo xác định được.Ví dụ:

CARO.INP CARO.OUT91 11 22 22 33 33 44 44 55 5

First player won

Bai 3. GỬI THƯ

Nguồn bài: http://vn.spoj.pl/problems/NKLETTER/Vị Giám đốc công ty XYZ cân gửi một văn ban quan trọng tới một đối tác của mình. Văn ban là một xâu S

các chữ cái la tinh in thường. Để bao mật nội dung văn ban, ông Giám đốc gửi 2 bức thư. Bức thư thứ nhất là phân đâu Sb của xâu S, bức thư thứ 2 là phân cuối Se của S. Hai bức thư Sb và Se đam bao đây đủ nội dung của S, tuy nhiên có thể một phân cuối của Sb có thể được viết lặp lại trong phân đâu của Se, song số ki tự được viết lặp lại không biết trước.

Vi dụ: với văn ban S=’truongnguyenduquannhat’ tạo ra hai bức thư: Sb=‘truongnguyendu’ Se=‘nguyenduquannhat’Sb=’truongnguyendu’ và Se=’nguyenduquannhat’Yêu cầu: Cho hai xâu Sb và Se, hay xác định một xâu S có thể là nội dung của bức thư sao cho độ dài của

xâu S là ngăn nhất. Dư liêu vao từ tệp văn ban NKLETTET.INP+ Dòng đâu chứa xâu Sb+ Dòng thứ hai chứa xâu Se. Mỗi xâu có độ dài không quá 250.Dư liêu ra ghi vào tệp NKLETTER.OUTGhi ra độ dài của xâu S tìm được.Vi du:

NKLETTER.INP NKLETTER.OUTtruongnguyendunguyenduquannhat

22

Page 59: bài tập bồi dưỡng học sinh giỏi Tin học

1. PHÂN MÁY THỰC TẬP

Trung tâm máy tinh cân phân máy thực hành cho N lớp sinh viên (được đánh số từ 1 đến N). Lớp sinh viên i có Xi sinh viên. Trong trung tâm có M (M N) phòng máy được đánh số từ 1 đến M. Phòng máy j có Yj máy. Để đam bao việc hướng dẫn thực hành, mỗi sinh viên cân có một máy, ngoài ra còn cân một máy cho giáo viên hướng dẫn. Không được phép di chuyển máy từ phòng máy này sang phòng máy khác.

Yêu cầu: Xác định số lượng lớn nhất các lớp sinh viên có thể đồng thời phân bố mỗi lớp vào một phòng máy và sao cho trong mỗi phòng máy mỗi sinh viên có một máy riêng để làm việc và ngoài ra còn một máy dành cho giáo viên hướng dẫn.

Dư liêu: Vào từ file văn ban có tên COMASIGN.INP:

+ Dòng đâu tiên chứa hai số nguyên N, M (1 N M 1000);

+ Dòng thứ hai chứa N số nguyên X1, ..., XN (1≤Xi≤1000,1 i N);

+ Dòng thứ ba chứa M số nguyên Y1, ..., YM (1Yi 1000, 1 i M).

Kết quả: Ghi ra file văn ban COMASIGN.OUT: là một số nguyên P cho biết số lượng lớn nhất lớp sinh viên tìm được

Vi du:

COMASIGN.INP COMASIGN.OUT3 45 3 43 5 3 6

2

2. Tổ chức tham quan

Trong đợt tô chức đi tham quan danh lam thăng canh của thành phố Hồ Chi Minh, Ban tô chức hội thi Tin học trẻ tô chức cho N đoàn (đánh số từ 1 đến N) mỗi đoàn đi tham quan một địa điểm khác nhau. Đoàn thứ i đi tham quan địa điểm cách Khách sạn Hoàng Đế d i km (i=1,2,...,n). Hội thi có M xe taxi đánh số từ 1 đến M (MN). Xe thứ j có mức tiêu thụ xăng là v lit/km.

Yêu cầu: Hay chọn N xe để phục vụ việc đưa các đoàn đi tham quan sao cho tông chi phi xăng cân sử dụng là it nhất.

Dư liêu: Vào từ file văn ban THAMQUAN.INP

+ Dòng đâu tiên chứa hai số nguyên dương N, M (1N,M30000)

+ Tiếp theo là N dòng, dòng thứ i ghi số nguyên di (1di30000)

+ Cuối cùng là M dòng, dòng thứ j ghi vj (1vj30000)

Kết quả: Ghi ra file văn ban THAMQUAN.OUT:

+ Dòng đâu tiên ghi tông lượng xăng cân dùng cho việc đưa các đoàn đi tham quan (không tinh lượt vê)

+ Dòng thứ i trong số N dòng tiếp theo ghi chỉ số xe phục vụ đoàn i (i=1,2,...,N)

Ví dụ:

THAMQUAN.INP THAMQUAN.OUT3 475917131510

256234

Page 60: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1: cộng phân sốCho 2 phân số A/B và C/DYêu câu: Hay xác định 2 số nguyên dương E và F thỏa man 2 điêu kiện sau:+ ĐK 1: E/F=A/B+C/D+ ĐK 2: E/F là phân số tối gianDư liêu vao: file văn ban BAI1.INP, có cấu trúc:+ Dòng 1 chứa hai số A,B+ Dòng 2 chứa 2 số C,D(A,B,C,D là các số nguyên dương và không lớn hơn 10000)Dư liêu ra: file văn ban BAI1.outcó 1 dòng chứa 2 số E,F ghi trên cùng 1 dòng, cách nhau bởi dấu cách trống.

Vi dụ:

BAI1.INP BAI1.OUT2 53 6

9 10

Bai 2: Rô-bốt quét sơn

Trên tường nhà có kich thước NxN được chia thành NxN ô vuông đơn vị, ban đâu tất ca các nên nhà đêu có màu trăng. Một con rô-bốt được lập trình để sơn tường nhà, mỗi lân nó sẽ sơn trên một hình vuông kich thước KxK. Các lệnh điêu khiển rô-bốt có dạng 4 số nguyên x y k v trong đó x, y là tọa độ góc phia trên bên trái hình vuông kich thước KxK mà rô-bốt sơn, v là màu mà rô-bốt sẽ sơn trên hình vuông đó, các màu được đánh số băt đâu từ 0 (số 0 là màu trăng). Hay cho biết sau M lệnh có bao nhiêu ô vuông đơn vị trên tường nhà chưa được rô-bốt sơn và màu ở các ô trên tường nhà

Dư liêu vao: từ tệp văn ban SON.INP

+ Dòng đâu tiên hai số nguyên dương M, N (1≤N≤1000; 0≤M≤1000)

+ M dòng tiếp theo mỗi dòng chứa 4 số nguyên cho biết các lệnh dùng để điêu khiển rô-bốt. Rô-bốt sẽ thực hiện lân lượt từng lệnh từ lệnh 1 đến lệnh M

Dư liêu ra: ghi vào tệp văn ban SON.OUT

+ Dòng đâu ghi một số nguyên cho biết số lượng các ô chưa được sơn

+ N dòng tiếp theo, dòng thứ ghi N số trong đó số thứ j ở dòng i cho biết màu đơn sơn ở ô (i, j)

Vi du:

SON.INP SON.OUT2 31 1 2 22 2 2 3

22 2 02 3 30 3 3

Bai 3: tìm số lớncho 1 day gồm n ky tự có mặt trên bàn phim, trong đó có it nhất 4 chữ số (n<10^6)Yêu câu: hay loại bỏ 1 số ki tự khỏi day sao cho 4 cs cuối cùng tạo nên số lớn nhấtDư liêu vao: BAI2.INP chứa n ki tựDư liêu ra: BAI2.OUT chứa 4 ki tự tạo thành số lớn nhất

Vi du:

BAI2.INP BAI2.OUT24t5j4r05f704y652k393

7693

Page 61: bài tập bồi dưỡng học sinh giỏi Tin học

9

8

7

30467230

023524

923

K:=4;

L:=vị tri đầu tiên

R:=vị tri cuối cùng

Ok[i]=true cho biết ký tự i chưa được chọn

L:=1;

R:=length(s);

While k>0 do

begin

Vt:=vị tri của số lớn nhất, trái nhất

K:=k-1;ok[vt]:=false;

Page 62: bài tập bồi dưỡng học sinh giỏi Tin học

If Length(s)-vt+1>k then L:=vt+1;

Else begin

Ok[u]:=false; u=vt+1 đến R;

K:=k-R+vt;

R:=vt-1;

End;

Bộ test là tập các tệp input mà đa biết trước output

3,2 3,5

6,2

For u:=X[i] to X[i]+K[i]-1 do

A/B+C/D=((A*BCNN(B,D) div B)+(C*BCNN(B,D)div D))/BCNN(B,D)

Page 63: bài tập bồi dưỡng học sinh giỏi Tin học

Câu 1: Xoá ký tự. DELECHAR.PASCho một xâu ky tự St có độ dài tối đa 255 ky tự, các ky tự được lấy từ tập ‘a’..’z’, ‘A’..’Z’, ‘0’..’9’.

Yêu cầu: Hay xoá hết các ky tự chữ số trong xâu St.Dữ liệu vào: Ghi trong file văn ban DELECHAR.INP có cấu trúc như sau:

- Dòng 1: Ghi xâu St.Dữ liệu ra: Ghi trong file văn ban DELECHAR.OUT có cấu trúc như sau:

- Dòng 1: Ghi xâu St sau khi đa xoá đi các ky tự chữ số.Ví dụ:

DELECHAR.INP DELECHAR.OUTabc123DLA97ijk abcDLA97ijk

Câu 2: Các số nguyên tố trong ma trận MATRIX.PASMột số tự nhiên P (P>1) là số nguyên tố nếu P có đúng 2 ước số là 1 và P.Cho ma trận A gồm M dòng, N cột chứa các số nguyên dương. Các dòng được đánh số từ 1 đến M theo thứ

tự từ trên xuống dưới, các cột được đánh số từ 1 đến N theo thứ tự trái sang phai.(1≤M, N≤100, 1≤i≤M, 1≤j≤N, 1≤aij≤64000).Yêu cầu: Hay đếm số lượng các phân tử có giá trị là số nguyên tố trong ma trận.Dữ liệu vào: Ghi trong file văn ban MATRIX.INP theo cấu trúc như sau:+ Dòng 1: Ghi hai số nguyên dương M và N.+ Dòng thứ i trong M dòng tiếp theo: Mỗi dòng ghi N số lân lượt là các phân tử trên dòng thứ i trong ma

trận A. các số được ghi các nhau it nhất một dấu cách.Dữ liệu ra: Ghi ra file văn ban MATRIX.OUT theo cấu trúc như sau:Dòng 1: Ghi số nguyên D là số lượng phân tử có giá trị là số nguyên tố trong ma trận A.Ví dụ:

MATRIX.INP MATRIX.OUT3 41 6 9 72 7 8 53 4 5 6

6

Câu 3. So sánhCho hai số thực A và B, hay so sánh hai số thực và đưa ra thông báo “>”, “<” hoặc “=”.Input

- Dòng 1: là số A (có không quá 20000 ky tự)

- Dòng 2: là số B (có không quá 20000 ky tự)

Output

- Đưa ra thông báo “>”, “<” hoặc “=”.

COMPARE.INP COMPARE.OUT

2.393.61

<

12312.3

>

1234567812345678.0

=

Page 64: bài tập bồi dưỡng học sinh giỏi Tin học

Câu 4. Khiêu vũMột làng quê có m chàng trai đánh số từ 1 tới m và n cô gái đánh số từ 1 tới n. Chàng trai thứ i có chiêu

cao ai (i = 1,2 ,…,m), cô gái thứ j có chiêu cao bj ( j = 1, 2, …n).Trong một buôi khiêu vũ, người ta muốn chọn ra một số cặp nhay. Mỗi cặp nhay gồm đúng 1 chàng trai

và 1 cô gái và trong cặp đó, chàng trai phai cao hơn cô gái. Mỗi chàng trai, cô gái trong làng không được tham gia quá 1 cặp nhay.Yêu câu: TÌm một số nhiêu nâhts các cặp nhay thỏa man yêu câu trên.Dữ liệu: Vào từ file văn ban DANCE.INP

Dòng 1 chưa hai số nguyên dương m,n < 105

Dòng 2 chứa m số nguyên dương a1, a2, …, am (a[i] < 109) Dòng 3 chứa n số nguyên dương b1, b2, …, bm (b[i] < 109)

Kết qua: Ghi ra file văn ban DANCE.OUT một số nguyên duy nhất là số cặp nhay theo phương án tìm được.Vi dụ:

DANCE.INP DANCE.OUT

3 21 2 32 3

1

Page 65: bài tập bồi dưỡng học sinh giỏi Tin học

BÀI 1: SẮP XẾP SỐ

Cho số nguyên dương N (N≤105) và day số nguyên đôi một khác nhau A1, A2,…,AN. (|Ai|≤109). Thực hiện các công việc sau

a. Với 1 số nguyên K thuộc A, hay săp xếp lại day số sao cho tất ca các số đứng trước K đêu nhỏ hơn K, tất ca các số đứng sau K đêu lớn hơn K

b. Hay săp xếp lại day số sao cho số không dương đứng đâu day, số nguyên dương chẵn đững ở giữa và số nguyên dương lẻ đứng cuối day

BÀI 2: ĐUA ROBOT

Trong cuộc đua tốc độ có N rô-bốt tham gia được đánh số từ 1 đến N. Đường đua có độ dài d (mét). Rô-bốt thứ i có vận tốc đua không đôi là vi (mét/phút). Các rô-bốt xuất phát theo thứ tự từ 1 đến N và cách nhau 1 phút. Rô-bốt i được gọi là vượt rô-bốt j (1≤j≤N) nếu i xuất phát sau j và vê đich trước j. Yêu câu xác định tất ca các lân vượt nhau của các rô-bốt trong cuộc đua

Dư liêu vao: Từ tệp văn ban DUAR.INP

+ Dòng đâu tiên chứa số nguyên dương N và d (N<105 và d<109)

+ Dòng tiếp theo chứa N số nguyên dương vi, (1≤i≤N, mỗi số không vượt quá 1000)

Dư liêu ra: ghi vào tệp văn ban DUAR.OUT số lân vượt nhau của tất ca các rô-bốt trong cuộc đua

Vi du:

DUAR.INP DUAR.OUT

5 10

1 2 4 3 8

7

Số thứ tự 1 2 3 4 5

Tg+ thêm 0 1 2 3 4

Tg hoan thanh

10 5 2.5 3.333333 1.25

Tông Tg 10 6 4.5 6.3333 5.25

Số người vượt

4 2 0 1 0 7

BÀI 3: ĐƯỜNG TRÒN

Trên mặt phẳng với hệ trục toạ độ Decattes vuông góc cho n điểm xanh và n điểm đỏ hoàn toàn phân biệt. Toạ độ các điểm này là số nguyên có giá trị tuyệt đối 10000.

Hãy chỉ ra môt hình tron nhỏ nhất thoả mãn:

Có tâm ở gốc toạ đô (0, 0)

Bên trong hình tron (tính cả đường biên), số điểm xanh = số điểm đỏ 1

Dư liêu vao: từ file văn ban CIRCLE.INP

+ Dòng 1: Chứa số nguyên dương n (n 50000)

+ n dòng tiếp theo, mỗi dòng chứa hoành độ và tung độ của một điểm xanh

+ n dòng tiếp theo, mỗi dòng chứa hoành độ và tung độ của một điểm đỏ

Các số trên môt dong của Input file cách nhau ít nhất môt dấu cách

Kết quả: Ghi ra file văn ban CIRCLE.OUT Chỉ gồm một dòng ghi bán kinh đường tròn tìm được (Ghi dưới dạng số thực với 6 chữ số sau dấu chấm thập phân)

CIRCLE.INP CIRCLE.OUT

Page 66: bài tập bồi dưỡng học sinh giỏi Tin học

x

y

0

42 00 30 -34 -41 10 2-3 0-3 3

3.000000

BÀI 4: THAY THẾ TỪ

Hai tệp văn ban INPUT1.TXT và INPUT2.TXT được cho như sau: tệp INPUT1.TXT chứa một đoạn văn ban bất kỳ có không quá 106 ky tự. Tệp INPUT2.TXT chứa không quá 50 dòng, mỗi dòng gồm hai từ: từ đâu là từ đich và từ sau là từ nguồn. Hay tìm trong tệp INPUT1.TXT tất ca các từ là từ đich và thay thế chúng bằng các từ nguồn tương ứng. Kết qua ghi vào tệp KQ.INP (sẽ là một đoạn văn ban tương tự như trong tệp INPUT1.INP nhưng đa được thay thế từ đich bởi từ nguồn)

Vi du:

Tệp INPUT1.INP chứa đoạn văn bản sau:

“Nam moi sap den roi, ban co zui khong?

Chuc cac ban don cai tet thay zui ve va hanh phuc.

Chuc ban luon học gioi!”

Tệp INPUT2.TXT chứa các dong sau:

ban em

zui vui

Tệp KQ.OUT sẽ chứa đoạn văn bản:

“Nam moi sap den roi, em co vui khong?

Chuc cac em don cai tet thay vui ve va hanh phuc.

Chuc em luon học gioi!”

Page 67: bài tập bồi dưỡng học sinh giỏi Tin học

5 8 2 9 1 3 10 44 8 2 9 1 3 10 53 8 2 9 1 4 10 53 4 2 9 1 8 10 53 1 2 9 4 8 10 53 1 2 4 6 8 10 5

U←1;v←N;While u<=v do Begin While A[u]<k do u:=u+1; While A[v]>k do v:=v-1; Swap(A[u],A[v]);

Page 68: bài tập bồi dưỡng học sinh giỏi Tin học

Inc(u); Dec(v); End;+ Chia day ban đâu thành 2

day sao cho mỗi phân tử ở day phia trước đêu nhỏ hơn tất ca các phân tử ở day phia sau+ Săp xếp day phia trước+ Săp xếp day phia sau

Bài 1: giao điểm của hai đường thẳng

Cho 4 điểm phân biệt A(xA, yA), B(xB,yB), C(xC,yC), D(xD,yD). Hay in ra màn hình giao điểm của hai đoạn thẳng AB và CD. Trong trường hợp không căt nhau thì in ra màn hình ‘NO’. Biết rằng giữa hai đoạn thẳng có it nhất một giao điểm

Bài 2: Đa giác

Cho N đa giác lồi thoa man các tinh chất sau:

+ Với 2 đa giác bất kỳ luôn có một đa giác mà mọi điểm của nó nằm trong đa giác kia

+ Các cạnh của chúng không có điểm chung

Bài toán đặt ra là: Với mỗi đa giác i, có bao nhiêu đa giác trong N đa giác nói trên bao nó (i nằm trong bao nhiêu đa giác)?.

Dư liêu: Vào từ tệp văn ban DAGIAC.INP

+ Dòng đâu tiên ghi số tự nhiên N (3N10000)

+ Dòng thứ i+1 ghi thông tin vê đa giác thứ i, bao gồm: Số đâu tiên Si là số đỉnh của đa giác; Si cặp số nguyên tiếp theo lân lượt là hoành độ và tung độ các đỉnh của đa giác. Các số trên cùng dòng cách nhau it nhất một dấu cách.

Page 69: bài tập bồi dưỡng học sinh giỏi Tin học

Kết quả: Ghi ra tệp văn ban DAGIAC.OUT gồm N dòng, dòng thứ i ghi số lượng các đa giác bao đa giác i.

Vi du:

DAGIAC.INP DAGIAC.OUT44 1 1 15 1 15 8 1 84 9 3 9 6 4 6 4 34 3 2 11 2 11 7 3 73 8 4 8 5 6 8

0213

Bài 3: XÂY DỰNG NHÀ MÁY

Do nên công nghiệp rất phát triển nên nhu câu vê điện đối với đất nước X tăng liên tục. Vì vậy chinh phủ muốn xây dựng thêm K nhà máy điện nguyên tử, do cân tinh đến ly do an toàn nên các nhà máy điện nguyên tử phai đặt càng xa nhau càng tốt để tránh các phan ứng dây chuyên có thể xay ra khi có sự cố. Có N địa điểm có thể chọn để xây dựng nhà máy, bạn hay giúp chinh phủ nước X chọn ra K địa điểm trong số N địa điểm nói trên sao cho khoang cách của hai điểm gân nhất được chọn là lớn nhất.

Dư liêu vao: Từ tệp văn ban FACTORY.INP

+ Dòng đâu tiên ghi hai số nguyên N và K (1<K<N≤200)

+ N dòng tiếp theo, dòng thứ i ghi 2 số nguyên x i, yi là tọa độ địa điểm thứ i có thể xây dựng nhà máy (Các tọa độ là nguyên có giá trị tuyệt đối không vượt quá 10000)

Dư liêu ra: ghi vào tệp FACTORY.OUT một dòng gồm K số là số thứ tự của K điểm được chọn để xây dựng nhà máy

Vi du:

FACTORY.INP FACTORY.OUT5 30 02 16 03 44 1

1 3 4

Bai 1: Căp điêm gần nhâtTrên trục số, cho n điểm A1, A2,... An có tọa độ lân lượt: x1, x2,... xn. Các điểm không nhất thiết phân biệt.Yêu cầu: Hay xác định các cặp điểm Ai, Aj (0 < i < j < n + 1) sao cho khoang cách Ai, Aj ngăn nhất.Dữ liệu vào: File văn ban NEAREST.INP gồm 2 dòng:

Dòng 1: Số nguyên n, 2 n 105

Dòng 2: n số: x1, x2,... xn. Các tọa độ có giá trị tuyệt đối không quá 109.

Dữ liệu ra: File văn ban NEAREST.OUT. Ghi ra hai giá trị trên một dòng: khoang cách ngăn nhất tìm được và số lượng cặp điểm có khoang cách bằng khoang cách ngăn nhất.Ví dụ:

NEAREST.INP NEAREST.OUT Giai thich45 2 1 3

1 2 Khoang cach: 12 căp điêm co khoang cach 1: (2,1) va (2,3)

Bai 2 - XAUFIB. Cho 3 xâu khác rỗng SA, SB, SR, độ dài của các xâu SA và SB không vượt quá 10, độ dài xâu

SR không vượt quá 15. Day xâu F0,F1, F2, ..., Fn được xây dựng bằng phép ghép xâu (+) theo qui tăc: F0=SA, F1=SB, Fk+1=Fk-1+Fk; k=1,2,...,n-1. Hay xác định số lân xuất hiện của SR trong Fn.

Page 70: bài tập bồi dưỡng học sinh giỏi Tin học

Dư liêu vao: File văn ban xaufib.inp có cấu trúc:- Dòng đâu tiên chứa số nguyên dương n (1 < n 35).- Ba dòng tiếp theo chứa các xâu SA, SB, SR, mỗi xâu trên một dòng.

Dư liêu ra: File văn ban xaufib.out chứa số lân xuất hiện tìm được.Vi du:

xaufib.inp xaufib.out Giải thichF6 = ABBABBABABBABBAB xuất hiện 4 lân trong F6

tại các vị tri: 3, 6, 8 và 11.

6ABBAB

4

Bai 3: ĐIỂM GẤP

Mạnh có một sợi dây thừng có độdài N (1 ≤N ≤104). Sợi dây thừng có K nút thăt ở các vị tri khác nhau (2≤K≤100), bao gồm ca nút thăt ở mỗi đâu sợi dây. Mạnh cho rằng có một số điểm gấp để sợi dây trở lại sao cho các nút thăt ởphia đối diện thẳng hàng với nhau nhưtrong hình sau:

Hay giúp Mạnh đếm số lượng các điểm có thể gấp lại sao cho thỏa man điêu kiện trên. Điểm gấp có thểlà nút thăt nhưng không phai là nút thăt ởhai đâu. Tất nhiên, điểm gấp có thểlà nút thăt ở một bên có thể dư ra (có nghĩa là nếu ca hai bên có nút thăt thì nó sẽ đối diện với nhau). Hơn nữa, Mạnh chỉ gấp lại một lân tại một thời điểm, cậu ta không bao giờ gấp nhiêu lân.

Dư liêu vao:Từ file NUT.INP gồm:

- Dòng đâu tiên gồm hai số K và N (hai số cách nhau it nhất một dấu cách trống).

- Các dòng còn lại mỗi dòng chứa một số nguyên từ 0.. N là vịtri của các nút thăt.

Trong đó sẽcó 2 nút thăt là 0 và N.

Kết quả: ghi vào tệp NUT.OUT: một số duy nhất là số lượng các nút thăt thỏa man điêu kiện.

Vi du:

NUT.INP NUT.OUT5 620365

4

Page 71: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 1: BÁN LÚA

Ông A thu hoạnh được n bao lúa, mỗi bao có khối lượng tương ứng là ai. Sau khi thu hoạch, ông A xếp n bao lúa vào trong kho theo thứ tự: bao 1 xếp trước, đến bao số 2,...bao ngoài cùng là bao thứ n. Ông dự định bán lúa theo cách sau:+ Bán nguyên bao lúa+ Bán từ ngoài vào trong (từ bao thứ n)+ Số lượng lúa bán đi it hơn hoặc bằng số lượng lúa còn lại trong khoHay cho biết ông ta bán được bao nhiêu kg lúa?

Dư liêu vao: từ tệp văn ban BANLUA.INP

+ Dòng đâu tiên ghi số nguyên dương N (N≤106).

+ Dòng thứ hai ghi N số nguyên dương, số thứ i có giá trị ai (ai≤109)

Dư liêu ra: ghi vòa tệp văn ban BANLUA.OUT một số duy nhất cho biết số kg lúa mà ông A bán được

BANLUA.INP BANLUA.OUT BANLUA.INP BANLUA.OUT552 62 58 61 51

112 252 62

0

Bai 2: TRÂUMột đàn trâu có n con trâu. Trong đó có x con trâu đứng, y trâu nằm và z con trâu còn lại là trâu

già. Các con trâu trong đàn ăn vừa hết m bó cỏ: mỗi con trâu đứng ăn đúng 5 bó, mỗi con trâu nằm ăn đúng 3 bó và các con trâu già thì ba con mới ăn hết 1 bó. Cho trước n và m, hỏi có bao nhiêu bộ số (x, y, z) thỏa man bài toán.Dư liêu vao: File văn ban trau.inp chứa 2 số n và m trên một dòng. Dư liêu ra: File văn ban trau.out chứa một số nguyên là đáp án của bài toán.Giới hạn: n, m, x, y, z nguyên dương và có giá trị không vượt quá 5000.Vi du:

TRAU.INP TRAU.OUT Giải thich:Có 1 bộ (x, y, z) thỏa man là (3, 1, 6) vì 3 + 1 + 6 = 10 và 3 x 5 + 1 x 3 + 6 / 3 = 20

10 20 1

Bai 3: LŨY THỪACho 3 số nguyên dương x, n, b. Hay tinh số dư khi chia xn cho b.Dư liêu vao: File văn ban LUYTHUA.INP chứa 3 số x, n và b trên một dòng. Dư liêu ra: File văn ban LUYTHUA.OUT chứa một số nguyên là đáp án của bài toán.Giới hạn: Các số x, n, b nguyên dương và có giá trị không vượt quá 100.Vi du:

LUYTHUA.INP LUYTHUA.OUT Giải thich:302 = 900900 mod 17 = 16

30 2 17 16

Bai 4: DIỆN TICH MIỀN PHỦ

Một trường học X cân làm mái che nằm ngang. Trường học có N tấm bạt hình chữ nhật, các tấm bạt làm mái che có thể chồng lên nhau. Tinh diện tich che phủ

Dư liêu vao: Từ tệp DIENTICH.INP

Dòng đâu tiên ghi số nguyên dương N (1<=N≤10)

Dòng thứ 2 đến N+1: mỗi dòng chứa 4 số nguyên là x1, y1, x2, y2 trong đó (x1, y1) là điểm trái trên của tấm bạt hình chữ nhật, (x2, y2) là điểm phai dưới của tấm bạt hình chữ nhật (các số có giá trị tuyệt đối không vượt quá 103)

Dữ liệu ra: ghi vào tệp văn ban DIENTICH.OUT một số nguyên duy nhất cho biết phân diện tich được phủ

Page 72: bài tập bồi dưỡng học sinh giỏi Tin học

DIENTICH.INP DIENTICH.OUT30 5 4 12 4 6 20 5 4 1

20

0 1 2 3 4 5 60 0 0 0 0 0 0 00 0

0 0 0 0 0 0 0 0 00

0 1 1 1 1 1 1123456

A:array[-1000..1000] of byte;

A[i,j]:=0;

Bai 5: XẾP HẠNG

Có N học sinh, đánh số thứ tự 1, 2, … , N, tham gia một cuộc thi lập trình. Các thi sinh được chấm bài ngay trong thời gian thi nên mỗi bạn đêu biết điểm thi của mình. Ban tô chức cho biết không có hai thi sinh nào có cùng điểm thi. Tuy nhiên, bang xếp hạng cuối cùng lại chưa được công bố. Rất mong muốn biết được thứ hạng để xác định “màu huy chương”, một số thi sinh đa so sánh điểm thi với nhau. Có tất ca M so sánh như vậy, kết qua mỗi so sánh là một cặp sốnguyên (A; B) được hiểu là thi sinh A có điểm cao hơn thi sinh B, đồng nghĩa A sẽ có thứ hạng kết qua cao hơn B.

Cho biết thông tin vê các lân so sánh, hay xác định xem có bao nhiêu thi sinh đa có thể biết chinh xác thứ hạng của mình.

Dư liêu vao: Từ tệp văn ban BRANK.INP

Dòng thứ nhất chứa 2 số nguyên dương N và M (1<=N≤100; 1≤M≤10000)

M dòng tiếp theo mỗi dòng chứa 1 cặp số nguyên A, B

Dư liêu ra: ghi vào tệp BRANK.OUT là một số nguyên cho biết số lượng thi sinh biết chinh xác thứ hạng của mình

Vi du:

BRANK.INP BRANK.OUT5 54 34 23 21 22 5

2

Thi sinh 2 và 5 biết chinh xác thứ hạng của mình

Page 73: bài tập bồi dưỡng học sinh giỏi Tin học

Bai 5. CHỜ XE BUÝT

Hùng làm việc cho công ty buyt HPC, cậu được giao nhiệm vụ thu thập thông tin khách hàng để công ty có thể thực hiện việc tối ưu hóa lịch phục vụ. Bến xe buyt đâu tiên Hùng điêu tra là bến xe cạnh nhà. Tại bến này, mỗi ngày, chuyến xe buyt đâu tiên đi qua ở thời điểm T0 , chuyến thứ hai đi qua ở thời điểm T0+D, chuyến thứ ba đi qua ở thời điểm T0+2D, … Có N khách hàng thường xuyên chờ xe buyt tại bến, khách hàng thứ i đến bến ở thời điểm si và sẽ lên chuyến xe buyt đâu tiên đến bến ở thời điểm không sớm hơn si.

Yêu cầu: Cho T0, D và thời điểm các khách hàng đến bến, hay xác định số hiệu chuyến xe buyt sẽ lên của từng khách hàng.

Dư liêu: Vào từ file văn ban BUS.INP

+ Dòng thứ nhất chứa ba số nguyên N, D, T0 (2≤N≤1000; 1≤D≤10000; 0≤T0≤1000000)

+ Dòng thứ hai ghi N số nguyên s1, s2,…,sN (0≤si≤106)

Kết quả ra: ghi vào văn ban BUS.OUT gồm 1 dòng chứa N số nguyên, số thứ i là số hiệu chuyến xe bus mà hành khách thứ i sẽ lên

Vi du:

BUS.INP BUS.OUT3 5 80 15 23

1 3 4