Viết chơng trình nhập số nguyên dơng N... Viết chơng trình nhập một số thực dơng R và một số nguyên dơng MAX.. Kết quả ghi ra file OUT.BL: dòng thứ nhất ghi CO/KHONG tuỳ theo kết quả cụ
Trang 1Các bài tập cơ bản
Bài 1 Viết chơng trình nhập số nguyên dơng N<=1000 và N số nguyên A[1], ,
A[N] Hãy thông báo ra màn hình các số sau:
- Giá trị lớn nhất của dãy và các chỉ số của các số hạng đạt giá trị lớn nhất
- Giá trị nhỏ nhất của dãy và các chỉ số của các số hạng đạt giá trị nhỏ nhất
- Giá trị lớn thứ nhì của dãy và các chỉ số của các số hạng đạt giá trị lớn nhì
- Giá trị nhỏ thứ nhì của dãy và các chỉ số của các số hạng đạt giá trị nhỏ nhì
- Dãy con gồm nhiều nhất các số hạng liên tiếp của dãy lập thành một cấp số cộng
- Dãy con gồm nhiều nhất các số hạng liên tiếp của dãy lập thành một dãy đơn điệu
- Dãy con gồm nhiều nhất các số hạng liên tiếp trái dấu nhau của dãy
- Dãy con gồm nhiều nhất các số hạng liên tiếp cùng dấu của dãy
Bài 2 Viết chơng trình nhập từ bàn phím hai số nguyên dơng M và N Ê 10000 và in
ra màn hình ớc chung lớn nhất của hai số đó
Bài 3 Viết chơng trình nhập từ bàn phím số nguyên dơng N Ê 30000 và thông báo
ra màn hình N có là số nguyên tố hay không
Bài 4 Viết chơng trình nhập từ bàn phím số nguyên dơng N Ê 10000 và thông báo
ra màn hình các số K<=N có bằng tổng các ớc của nó và nhỏ hơn nó? (Số K thoả mãn
điều kiện trên đợc gọi là số hoàn thiện, ví dụ 6=1+2+3 là số hoàn thiện)
Bài 5 Nhập từ bàn phím số nguyên dơng N<=10000 và N số thực A1, , AN Hãy
sắp xếp dãy đó theo thứ tự không giảm Thông báo ra màn hình dãy đợc sắp xếp lại đó
và ghi rõ từng số hạng là số hạng nào của dãy cũ
Bài 6 Có N gói kẹo, N<=200, các gói kẹo đợc đánh số từ 1 đến N, gói kẹo thứ i có
A[i] cái kẹo, các số a[1], , a[N] đều nguyên dơng và không quá 200 Hãy thông báo ra màn hình một cách chia các gói kẹo làm hai nhóm sao cho tổng số kẹo trong các nhóm sai khác nhau ít nhất
Dữ liệu vào đợc cho bởi file INP.BL trong đó dòng thứ nhất ghi số N và trong các dòng tiếp theo, mỗi dòng ghi 10 số lần lợt từ A[1] đến A[N]
Kết quả ghi ra file OUT.BL nh sau: dòng thứ nhất ghi số kẹo chênh lệch giữa hai nhóm, tiếp theo là một nhóm dòng ghi số hiệu các gói kẹo thuộc nhóm thứ nhất, mỗi dòng ghi 20 số hiệu, cuối cùng là một nhóm dòng ghi số hiệu các gói kẹo thuộc nhóm thứ hai, mỗi dòng ghi 20 số hiệu
Bài 7 Viết chơng trình nhập từ bàn phím bốn số nguyên dơng A, B, C, D,
1<=A<=31, 1<=B<=12, -2000<=C<=2000, 1<=D<=7 ý nghĩa của bốn số này là ngày A tháng B năm C là ngày thứ D, trong đó 1 là chủ nhật, 2 là thứ hai, , 7 là ngày thứ bảy Nhập tiếp ba số nguyên dơng A1, B1, C1 thoả mãn các điều kiện tơng ứng nh đối với A,
B, C Hãy thông báo ra màn hình ngày A1 tháng B1 năm C1 là ngày thứ mấy? Biết rằng nếu năm chia hết cho 4, tháng 2 có 29 ngày, còn với các năm khác, tháng 2 chỉ có 28 ngày
Bài 8 Cho một hình chữ nhật có các cạnh là các số nguyên dơng M, N, M và N
không quá 100 Hình chữ nhật đợc chia thành các ô vuông cạnh đơn vị bằng các đờng song song với các cạnh, các ô này đợc đánh số nh sau: các dòng ô đánh số từ 1 đến M từ dới lên trên, các cột ô đánh số từ 1 đến N từ trái sang phải, khi đó mỗi ô đợc đặc trng bởi chỉ số dòng và chỉ số cột của nó Hãy ghi ra màn hình các ô vuông có điểm chung với đờng chéo của hình chữ nhật đi từ góc trái trên của ô [1,1] đến góc phải dới của ô [M,N]
Bài 9 Viết chơng trình nhập số nguyên dơng N<=1000 và dãy N số nguyên A[1],
., A[N] Hãy xét xem dãy số đó có bao nhiêu giá trị khác nhau và mỗi giá trị đó là giá trị của các số hạng nào của dãy
Bài 10 Viết chơng trình nhập từ bàn phím hai số nguyên dơng M và N,
M,N<=10000 Hãy viết ra màn hình biểu diễn dới dạng số thập phân (nói chung là vô hạn tuần hoàn) của phân số M/N tức là dạng
M/N = b1 bk,c1 cm (d1 dr)
Trang 2Ví dụ nếu M=2, N=3, ta phải viết ra màn hình 0,(6).
Bài 11 Hãy tìm một cách biểu diễn các số lớn hàng trăm chữ số và thực hiện các
phép toán cộng và trừ
Bài 12 Viết chơng trình nhập từ bàn phím hai số nguyên dơng M, N Hãy tìm cách
thay các dấu ? trong biểu thức sau bởi các phép toán +, -, * sao cho giá trị của biểu thức nhận đợc bằng N:
((((M?M)?M)?M)?M) Nếu không có thể đợc, hãy thông báo là không thể đợc
Bài 13 Viết chơng trình nhập một số thực dơng R và một số nguyên dơng MAX.
Hãy tìm trong số các phân số có dạng P/Q với Q<=MAX phân số gần số R nhất
Bài 14 Viết chơng trình nhập số nguyên dơng N<=30000 và thông báo ra màn hình
số chữ số không tận cùng của N!
Bài 15 Viết chơng trình nhập từ bàn phím hai xâu ký tự S1 và S2.
1 Thông báo ra màn hình độ dài của S1 và S2
2 Hãy xét xem S1 có xuất hiện bao nhiêu lần trong S2 và xuất hiện tại những vị trí nào?
3 Hãy xét xem liệu S2 có là ghép liên tiếp của một số lần xâu S1 không?
Bài 16 Viết chơng trình nhập từ bàn phím một ký tự và một xâu ký tự Hãy thông
báo ra màn hình ký tự đó xuất hiện bao nhiêu lần trong xâu ký tự và tại những vị trí nào?
Bài 17 Viết chơng trình nhập 5 số nguyên A0, A1, A2, A3, A4 Hãy thông báo ra
màn hình tìm mọi nghiệm nguyên của phơng trình
A0 +A1X + A1X2 + A3X3 + A4 X4 = 0
Bài 18 Viết chơng trình nhập một xâu ký tự S chỉ gồm các chữ cái thờng Hãy lập
xâu S1 nhận đợc từ S bằng cách sắp xếp lại các ký tự theo vần a, b, c,
Ví dụ nếu S = 'xbaqp' thì S1 = 'abpqx'
Bài 19 Viết chơng trình nhập 8 số thực X1, Y1, X2, Y2, X3, Y3, X4, Y4, tơng ứng
là toạ độ của bốn điểm A, B, C, D trong mặt phẳng toạ độ Thông báo ra màn hình các kết quả sau:
1 Ba điểm A, B, C có lập thành một tam giác không?
2 Nếu ABC là một tam giác, hãy xét xem điểm D có nằm bên trong tam giác này không?
Bài 20 Viết chơng trình nhập số nguyên dơng N<=1000 và dãy A gồm N số nguyên
dơng khác nhau từng đôi A[1], , A[N] Hãy tìm một dãy B gồm nhiều số hạng nhất (không nhất thiết là liên tiếp) của A sao cho với bất kỳ ba số hạng khác nhau X, Y, Z của B, ta luôn có tổng X + Y + Z không lớn hơn tổng các số hạng còn lại của B
Bài 21 Giả sử trong một phiên làm việc từ thời điểm 0 đến thời điểm T = 8640000,
một trung tâm tính toán phải thực hiện N chơng trình, chơng trình i thực hiện từ thời
điểm A[i] đến thời điểm B[i], 0<=A[i]<=B[i]<T
1 Cho trớc một khoảng thời gian [P1,Q1] Hãy xét xem liệu tại mọi thời điểm của
đoạn đó luôn có chơng trình chạy hay không?
2 Cho trớc một khoảng thời gian [R1,S1] Hãy xét xem liệu tại mọi thời điểm của
đoạn đó luôn không có chơng trình chạy hay không?
3 Hãy tìm khoảng thời gian [P,Q] dài nhất sao cho tại mọi thời điểm của nó luôn có chơng trình chạy
4 Hãy tìm khoảng thời gian [R,S] dài nhất sao cho tại mọi thời điểm của nó đều không có chơng trình chạy
Dữ liệu vào đợc cho bởi file INP.BL trong đó dòng thứ nhất ghi số nguyên dơng N
<=200 Với 1<=i<=N, dòng thứ i+1 ghi hai số nguyên không âm A[i] và B[i] Dòng thứ N+2 ghi hai số nguyên không âm P1, Q1, P1<=Q1 Dòng thứ N+3 ghi hai số nguyên không âm R1, S1, R1<=S1
Trang 3Kết quả ghi ra file OUT.BL: dòng thứ nhất ghi CO/KHONG tuỳ theo kết quả cụ thể; dòng thứ hai ghi CO/KHONG tuỳ theo kết quả cụ thể; dòng thứ ba ghi hai số P,Q; dòng thứ t ghi hai số R, S
Bài 22 Viết chơng trình làm các việc sau:
1 Nhập một số nguyên dơng N<=1000 và dãy A gồm N số tự nhiên A[1], , A[N]
2 Tìm số tự nhiên nhỏ nhất không là tổng của một số số hạng của dãy A Tổng này
có thể chỉ gồm một số hạng và nếu có nhiều hơn, các số hạng không nhất thiết liên tiếp nhau nhng mỗi số hạng của dãy không xuất hiện quá một lần
Bài 23 Cho một sân hình chữ nhật có kích thớc MxN đợc chia thành MxN ô vuông
bằng nhau bởi các đờng song song với các cạnh Trên mỗi ô vuông có thể chôn hoặc không chôn một quả mìn Tình trạng của bãi mìn có thể đợc mô tả bởi một trong hai cách sau:
Cách thứ nhất: Dùng một mảng MIN1[1 M,1 N] trong đó phần tử MIN1[i,j] = 1
hay 0 tuỳ theo ô [i,j] có mìn hay không
Cách thứ hai: Mỗi ô của sân có nhiều nhất 8 ô khác nó kề cạnh với nó nh trong hình
vẽ sau
Hình 1 Hình 2 (bên trái: MIN1, bên phải: MIN2)
Ta ứng các ô này với các số 1, 2, 4, 8, 16, 32, 64, 128 nh hình 1 Khi đó ta lập một mảng MIN2[1 M,1 N] nh sau: MIN2[i,j] bằng tổng các số hạng có dạng X.Y trong đó
X là số ứng với một ô kề cạnh với nó, Y bằng 1 hay 0 tuỳ theo ô đó có hay không có
mìn, ô [i,j] có bao nhiêu ô kề cạnh thì tổng có bấy nhiêu số hạng Trong hình 2 cho ví
dụ về cách lập mảng MIN2 ứng với tình trạng mìn cho bởi mảng MIN1
Viết chơng trình làm các việc sau:
1 Đọc từ file MIN1.TXT mảng MIN1 cho biết tình trạng mìn theo cách thứ nhất, trong đó dòng thứ nhất ghi hai số nguyên dơng M, N <=100, trong M dòng sau, dòng thứ i ghi N số lần lợt là MIN1[i,1], , MIN1[i,N] Ghi ra file MIN1-2.TXT mảng MIN2 thể hiện tình trạng mìn theo cách thứ hai, mỗi dòng của mảng MIN2 ghi thành một dòng của file
2 Đọc từ file MIN2.TXT mảng MIN2 cho biết tình trạng mìn theo cách thứ nhất, trong đó dòng thứ nhất ghi hai số nguyên dơng M, N <=100, trong M dòng sau, dòng thứ i ghi N số lần lợt là MIN2[i,1], , MIN2[i,N] Ghi ra file MIN2-1.TXT mảng MIN1 thể hiện tình trạng mìn theo cách thứ hai, mỗi dòng của mảng MIN1 ghi thành một dòng của file
Bài 24.Viết chơng trình làm các việc sau:
1 Nhập từ bàn phím hai xâu ký tự S1 và S2
2 Ta có thể dùng một trong ba loại phép biến đổi sau:
BD1: xoá một ký tự nào đó trong xâu,
BD2: thêm một ký tự nào đó vào một vị trí nào đó của xâu,
BD3: thay một ký tự nào đó trong xâu bằng một ký tự khác
Hãy thông báo ra file OUT.TXT liệu có thể dùng một số phép biến đổi thuộc ba loại trên để biến đổi S1 thành S2 không, quy cách thông báo nh sau: ví dụ S1 = ptsddf, S2 = tsgldds, thì ta phải thông báo nh sau:
Biến đổi đợc ptslddf - xoá p/1 => tslddf tslddf - thêm g/3 => tsgdldf tsgdldf - thay f/7/s => tsgldds
3 Trong trờng hợp biến đổi đợc, hãy tìm một cách biến đổi dùng ít phép biến đổi nhất và thông báo tiếp vào file OUT.TXT theo quy cách nh trên
Bài 25 Cho một bảng vuông cạnh dài N đơn vị, N nguyên dơng, 3<=N<=25 Bảng
đợc chia thành NxN ô vuông bằng nhau bằng các đờng song song với các cạnh.Trên một
Trang 4số ô không nằm trên cạnh của bảng có đặt vật cản nhng bảng có mái che nên không biết
đợc vật cản nằm ở những ô nào Ta có thể dùng một quả bóng lăn từ ngoài vào bảng theo các dòng/cột của bảng Khi đó diễn biến chuyển động của quả bóng nh sau:
TH1 Nếu quả bóng gặp ô có vật cản, nó quay lại ngợc chiều
TH2 Nếu quả bóng đi tiếp súc với một ô có vật cản, nó đổi hớng 90o theo hớng vuông góc với cạnh tiếp súc ngay tại ô kề đỉnh với ô chứa vật cản TH1 sẽ xẩy ra khi
đồng thời có cả TH1 và TH2
TH3 Nếu quả bóng tiếp súc với hai ô có vật cản, nó sẽ quay lại ngợc chiều
Nhập từ file INP.BL1 số nguyên dơng N, 3<=N<=100 ghi ở dòng thứ nhất, trong N dòng sau mỗi dòng ghi N số 0/1, dòng thứ i+1 là tình trạng các ô của dòng i của bảng trong đó 1/0 tơng ứng là có/không có vật cản Dòng thứ N+2 ghi một xâu ký tự có một trong các dạng sau thể hiện cách lăn quả bóng vào bảng
- D-U-1 (có nghĩa là bóng lăn vào dòng U theo hớng từ ô [U,1])
- D-U-N (có nghĩa là bóng lăn vào dòng U theo hớng từ ô [U,N])
- C-U-1 (có nghĩa là bóng lăn vào cột U theo hớng từ ô [1,U])
- C-U-N (có nghĩa là bóng lăn vào cột U theo hớng từ ô [N,U])
In ra file OUT.BL1 dãy các ô liên tiếp của bảng trên hành trình của quả bóng, mỗi ô ghi trên một dòng gồm hai số là số dòng và số cột của ô đó
Ví dụ Trong hình vẽ sau trong đó ô ghi chữ X là ô có vật cản
1
4
6
Nếu xâu ký tự là C-4-6 thì hành trình của quả bóng sẽ là:
6 4
6 3 Nếu xâu ký tự là D-3-6 thì hành trình của quả bóng sẽ là
3 6
3 5
4 5
3 5
4 6
Bài 26 Cho một dãy N viên bi gồm 3 mầu xanh, trắng, đỏ xếp lẫn lộn Bằng cách
đổi chỗ từng cặp viên bi cho nhau, hãy xếp lại dãy bi trên theo trình tự xanh trớc, trắng giữa, đỏ sau Yêu cầu cần dùng một số ít nhất phép đổi chỗ
Dữ liệu vào đợc cho bởi file INP1.TXT Dòng thứ nhất ghi số nguyên dơng N<=1000 Trong N dòng tiếp theo, mỗi dòng ghi ở vị trí đầu tiên một ký tự thuộc ba loại: X, T, D thể hiện dãy bi ban đầu
Dữ liệu ra ghi vào file OUT1.TXT trong đó dòng thứ nhất ghi số lợng phép đổi chỗ cần dùng Trong những dòng tiếp theo, mỗi dòng ghi một phép đổi chỗ dới dạng hai số
p q
có nghĩa là đổi chỗ các viên bi ở hai vị trí p và q cho nhau Trình tự viết các dòng là trình tự các phép đổi chỗ đợc tiến hành
Thời gian chạy chơng trình: 20 giây.
Trang 5Ví dụ
D D T D X
Bài 27 Tổng giám đốc một công ty muốn tổ chức một buổi liên hoan cho các đồng
nghiệp trong công ty Mỗi cán bộ của công ty ngoại trừ tổng giám đốc đều có đúng một
cấp trên trực tiếp của mình Cán bộ P đợc gọi là cấp trên của cán bộ Q nếu có một dãy
cán bộ P1, P2, , Pk, k>=2, sao cho P=P1, Pk=Q và với 1<=i<=k-1, Pi là cấp trên trực tiếp của Pi+1 Để cho mọi cán bộ đợc thoải mái, tổng giám đốc không muốn một cán bộ bất kỳ nào ngồi cùng một bàn với cấp trên của mình Hãy tính xem cần tối thiểu bao nhiêu bàn dùng cho buổi liên hoan theo yêu cầu của TGĐ
Dữ liệu vào đợc cho bởi file INP.TXT trong đó dòng thứ nhất ghi số nguyên dơng N
<=200 là số lợng toàn thể cán bộ của công ty, các cán bộ của công ty có tên từ 1 đến N, TGĐ có tên 1 và không có cấp trên Dòng thứ hai ghi số nguyên dơng K, 2 <= k <= 10,
là số ngời tối đa có thể ngồi trong một bàn (chú ý rằng khi xếp, không nhất thiết mọi bàn phải đủ K ngời) Dòng thứ ba ghi N số trong đó số thứ nhất là số 0, số thứ i là tên cấp trên trực tiếp của cán bộ i Dữ liệu đúng nh mô tả
Ghi ra file OUT.TXT số lợng M bàn cần dùng Trong M dòng tiếp theo, dòng thứ i ghi tên cán bộ ngồi bàn i
Ví dụ
4
0 1 9 9 9 2 2 1 1 8 8 10
Thời gian chạy chơng trình: Không quá 30 giây.
Bài 28 Có N quả cầu với số hiệu là 1, 2, , N, N<=200 Biết trọng lợng của quả
cầu 1 là M[1], của quả cầu N là M[N] Có hằng số D sao cho với mọi i, 1<i<N, ta có
M[i] = d + (M[i-1]+M[i+1])/2 Nhập từ bàn phím năm số: N, J - nguyên dơng, 1<=J<=N, M[1], M[N], D - ba số thực Thông báo ra màn hình khối lợng M[J] của quả cầu J
Bài 29 Có N lá Bài với các số hiệu 1, 2, , N, N<=50, trên lá Bài i ghi một số nguyên dơng F[i], 1<=F[i]<=N Hãy tìm một số nhiều nhất các lá Bài sao cho tập các số hiệu của chúng trùng với tập các số ghi trên các lá Bài đó
Dữ liệu vào cho bởi file INP.BL2 trong đó dòng thứ nhất ghi số N nguyên dơng Trong các dòng tiếp theo ghi mỗi dòng 10 số (cho tới khi hết N số) lần lợt là các số ghi trong các lá Bài từ lá Bài 1 đến lá Bài N
Dữ liệu ra ghi ra file OUT.BL2 trong đó dòng thứ nhất ghi số lợng lá bài Trong các dòng tiếp theo, mỗi dòng ghi 10 số hiệu của các lá Bài đợc chọn, các số hiệu ghi theo thứ tự tăng dần cho tới hết
Ví dụ
INP.BL2
14
OUT.BL2
10
Bài 30 Bắt đầu từ thời điểm 0, một ngời làm N việc với số hiệu từ 1 đến N,
N<=200 Với 1<=i<=N, việc i cần làm trong T[i] đơn vị thời gian và mỗi đơn vị thời gian từ thời điểm 0 đến lúc bắt đầu làm nó, ngời đó bị phạt một lợng tiền C[i] Khi đã làm một việc nào thì phải làm xong mới chuyển sang làm việc khác Hãy thu xếp trình
tự các việc làm sao cho tổng số tiền bị phạt là ít nhất
Trang 6Dữ liệu vào đợc cho bới file INP.BL trong đó dòng thứ nhất ghi số nguyên dơng N Với 1<=i<=N, dòng thứ i+1 ghi hai số thực T[i] và C[i]
Dữ liệu ra ghi trong file OUT.BL Dòng thứ nhất ghi tổng số tiền bị phạt Từ dòng thứ hai ghi mỗi dòng 1 cặp số: số thứ nhất là số hiệu việc, số thứ hai là thời điểm bắt đầu việc Trình tự từ trên xuống dới là trình tự lần lợt làm các việc
Bài 31 Cho xâu S chỉ gồm các dấu mở và đóng ngoặc tròn (, ) Hãy xét xem liệu có
thể viết thêm một số toán hạng và dấu phép toán giữa các dấu đó để nhận đợc một biểu thức số học đúng không
Dữ liệu vào đợc cho bởi file INP.BL trong đó mỗi dòng ghi một xâu ký tự Với mỗi dòng đọc đợc của file INP.BL, có ba khả năng:
- Nếu xâu tơng ứng chứa ký tự khác với ( và ), ghi vào file OUT.BL dòng chữ
KHONG HOP LE
- Nếu xâu chỉ gồm các ký tự ( và ) và có thể viết thêm một số toán hạng và dấu phép toán giữa các dấu đó để nhận đợc một biểu thức số học đúng thì ghi vào file OUT.BL dòng chữ
DUNG
- Nếu xâu chỉ gồm các ký tự ( và ) nhng không thể viết thêm một số toán hạng và dấu phép toán giữa các dấu đó để nhận đợc một biểu thức số học đúng thì ghi vào file OUT.BL dòng chữ
KHONG DUNG
Ví dụ
Bài 32 Cho một đồ thị vô hớng N đỉnh đánh số từ 1 đến N, N<=100, có ma trận kề
A[1 N,1 N] và hai đỉnh U, V bất kỳ Hãy tìm đờng đi từ U đến V (nếu có) qua ít cạnh nhất
Dữ liệu vào đợc cho bởi file INP.BL trong đó dòng thứ nhất ghi 3 số nguyên dơng N,
U, V, trong N dòng tiếp theo, dòng thứ i ghi N số A[i,1], , A[i,N]
Kết quả ghi ra file OUT.BL nh sau:
- Nếu không có đờng đi, ghi dòng chữ KHONG CO DUONG DI,
- Nếu có đờng đi, ghi hai dòng: dòng thứ nhất ghi số cạnh, dòng thứ hai ghi các đỉnh lần lợt trên đờng đi từ U đến V
Bài 33 Cho một đồ thị có hớng N đỉnh, N<=100, có ma trận kề A[1 N,1 N] và hai
đỉnh U, V bất kỳ Hãy tìm đờng đi từ U đến V (nếu có) qua nhiều cung nhất mà mỗi cung không đi hơn một lần
Dữ liệu vào đợc cho bởi file INP.BL trong đó dòng thứ nhất ghi 3 số nguyên dơng N,
U, V, trong N dòng tiếp theo, dòng thứ i ghi N số A[i,1], , A[i,N]
Kết quả ghi ra file OUT.BL nh sau:
- Nếu không có đờng đi, ghi dòng chữ KHONG CO DUONG DI,
- Nếu có đờng đi, ghi hai dòng: dòng thứ nhất ghi số cung, dòng thứ hai ghi các đỉnh lần lợt trên đờng đi từ U đến V
Bài 34 Cho số nguyên dơng N<=50 và 2N số thực X1, Y1, X2, Y2, , XN, YN
mà với 1<=i<=N, (Xi,Yi) là toạ độ của điểm Mi Tìm điểm M(X,0) trên trục hoành sao cho khoảng cách lớn nhất từ M đến các điểm Mi là nhỏ nhất có thể đợc
Dữ liệu vào đợc cho bởi file INP.BL trong đó dòng thứ nhất ghi số N, trong N dòng tiếp theo, dòng thứ i ghi hai số thực Xi và Yi
Rhông báo ra màn hình khoảng cách cần tìm
Bài 35 Cho một thùng dung tích có thể xem là vô hạn và N bình có dung tích V1,
V2, , VN lít Liệu có thể dùng N bình này để đổ vào thùng đúng V lít n ớc không? Khi dùng mỗi bình để đổ nớc vào thùng, bình đó phải chứa đầy nớc
Dữ liệu vào đợc cho bởi file INP.BL, dòng thứ nhất ghi số nguyên dơng N<=20 và
số nguyên dơng V Trong N dòng tiếp theo, dòng thứ i ghi số nguyên dơng Vi
Kết quả ghi ra file OUT.BL nh sau:
- Nếu không đợc, ghi dòng chữ KHONG DUOC
- Nếu có thể đợc, ghi dòng chữ CO THE, tiếp theo là N dòng, dòng thứ i ghi số lợng bình nớc có dung tích Vi cần đổ vào thùng
Trang 7Bài 36 Cho N xâu ký tự A1, A2, , AN, N<=100, độ dài mỗi xâu Ai không quá 10,
và một xâu ký tự S Hãy tìm mọi cách biểu diễn S dới dạng ghép của các xâu ký tự Ai, mỗi xâu Si có thể xuất hiện trong biểu diễn đó nhiều lần
Dữ liệu vào đợc cho bởi file XAU.TXT trong đó dòng thứ nhất ghi xâu S, dòng thứ hai ghi số N, trong N dòng tiếp theo, dòng thứ i ghi xâu Ai
Kết quả ghi ra file KQ.TXT nh sau:
- Nếu không có biểu diễn, ghi dòng chữ KHONG CO
- Nếu có biểu diễn, ghi mỗi biểu diễn trên một dòng theo quy cách nh ví dụ
Ví dụ về hai file dữ liệu vào và ra:
a b c d e f
A[4]A[9]A[10]A[11]
A[6]A[7]A[2]A[3]
A[6]A[7]A[2]A[10]A[11]
A[6]A[7]A[8]A[5]
A[6]A[7]A[8]A[9]A[3]
A[6]A[7]A[8]A[9]A[10]A[11]
Bài 37 Hãy tìm hai số nguyên dơng P, Q sao cho có số A mà khi viết trong cơ số P
có dạng 0,(ab), (ab) là chu kỳ của A và khi viết trong dạng cơ số Q có dạng 0,(ba)
Bài 38 Có N thành phố với các tên từ 1 đến N, N<=100 Mảng C[1 N,1 N] thoả
mãn các điều kiện: C[i,j] = C[j,i] = 0 nếu không có đờng đi từ i đến j và bằng 1 nếu có
đờng đi từ i đến j, các đờng đi đều là hai chiều Hãy xét xem có hay không một hành trình sao cho mỗi đờng đi giữa các thành phố đợc đi đúng một lần
Dữ liệu vào đợc cho bởi file INP.BL trong đó dòng thứ nhất ghi số nguyên dơng N, trong N dòng tiếp theo, dòng thứ i ghi N số C[i,1], , C[i,N]
Kết quả ghi ra file OUT.BL nh sau:
- Nếu không có thể, hãy thông báo ra màn hình dòng chữ KHONG THE
- Nếu có thể, hãy viết ra màn hình các thành phố lần lợt đi trên hành trình này
Bài 39 Ngòi bán hàng A chỉ có M tờ tiền với mệnh giá lần lợt là A[1], A[2], ,
A[M] đồng Ngời mua B chỉ có N tờ tiền, N<=30 với mệnh giá lần lợt là B[1], B[2], , B[N]; M, N <=50, các số A[i] và B[j] đều là nguyên dơng Hãy tìm số nguyên dơng P lớn nhất có thể đợc sao cho nếu B mua không quá P đồng, A vẫn có thể bán
đúng đợc số tiền đó bằng cách chỉ sử dụng các tờ tiền nói trên của cả hai ngời
Dữ liệu vào đợc cho bởi file INP.BL trong đó dòng thứ nhất ghi hai số nguyên dơng
M, N, dòng thứ 2 ghi M số nguyên dơng A[1], , A[M], dòng thứ 3 ghi N số nguyên
d-ơng B[1], , B[N] Thông báo số P ra màn hình
Bài 40 Nhập từ bàn phím số thực dơng R Hãy tìm cách biểu diễn R thành tổng các
số thực dơng R1, , Rk, các Ri<=4, sao cho R cũng bằng tích của R1, , Rk Kết quả ghi ra màn hình các số R1, , Rk tìm đợc
Bài 41 Nhập từ bàn phím số nguyên dơng N<=30000 Hãy tìm cách biểu diễn N
thành tổng các số nguyên dơng A1, , Ak sao cho tích các số A1, , Ak là lớn nhất có thể đợc Kết quả ghi ra màn hình tích các số Ai
Bài 42 Một thày giáo gặp N học sinh có tên 1, 2, , N Học sinh i có mặt lúc T[i]
và sẽ gặp thày trong khoảng thời gian C[i] Thày giáo sẽ gặp lần lợt từ học sinh 1 đến học sinh N, nếu học sinh i đến vào giờ T[i] nhng thày cha gặp xong các học sinh 1, 2, , i-1 thì học sinh i phải đợi đến lợt mình Giả sử thày giáo bắt đầu sẵn sàng gặp học sinh
từ thời điểm quy ớc là 0 Hãy tính xem tại thời điểm nào thày giáo gặp xong tất cả N học sinh và ghi ra màn hình Các số N, C[1], , C[N], T[1], , T[N] đều là nguyên
d-ơng và có thể nhập từ file hoặc từ bàn phím Kết quả thông báo ra màn hình
Bài 43 Có N ngời có tên tơng ứng là 1, 2, , N và tình trạng quen biết của N ngời
này đợc cho bởi mảng đối xứng A[1 N,1 N] trong đó A[i,j]=A[j,i]=1 nếu i quen j và
Trang 8bằng 0 nếu i không quen j Hãy xét xem liệu có thể chia N ngời đó thành 2 nhóm mà trong mỗi nhóm, hai ngời bất kỳ đều không quen nhau?
Dữ liệu vào đợc cho bởi file INP.BL trong đó dòng thứ nhất ghi số nguyên dơng N<=100, trong N dòng tiếp theo, dòng thứ i ghi N số A[i,1], , A[i,N]
Kết quả ghi ra file OUT.BL nh sau:
- Nếu không có thể, hãy thông báo ra màn hình dòng chữ KHONG THE
- Nếu có thể, hãy viết ra màn hình hai dòng, dòng thứ nhất tên những ngời thuộc nhóm 1, dòng thứ hai tên những ngời thuộc nhóm 2
Bài 44 Trên trục số cho N đoạn thẳng [Ai, Bi], 1<=i<=N, mà Ai và Bi là toạ độ của
các điểm đầu mút đoạn i trên trục số Cho một điểm M với toạ độ X Hãy xét xem tình huống nào trong hai tình huống sau xảy ra:
1 M không thuộc đoạn nào trong số N đoạn trên, khi đó cần thông báo rõ đoạn lớn nhất chứa M không có điểm trong chung (có thể chung đầu mút) với N đoạn nói trên
2 M thuộc một số đoạn trong số N đoạn trên, khi đó cần thông báo rõ bao nhiêu
đoạn và những đoạn nào
Các số N, X và Ai, Bi nhập từ file hoặc bàn phím Kết quả thông báo ra màn hình
Bài 45 Một số nguyên dơng N rất lớn có thể đợc cho bởi số nguyên dơng P, P số
nguyên dơng A1, , AP và P xâu ký tự chỉ gồm các chữ số thập phân S1, , SP Khi đó
N sẽ nhận đợc bằng cách viết S1 liên tiếp A1 lần rồi S2 liên tiếp A2 lần, , SP AP lần
Ví dụ với P=3, A1=3, S1=123, A2=4, S2=0, A3=2, S3=45 thì ta có
N = 12312312300004545
Giả sử số N đợc cho nh vậy và cho một số nguyên dơng K không vợt quá số chữ số của N, hãy tìm cách gạch đi K chữ số của N để nhận đợc một số có giá trị nhỏ nhất Các số P, K, A1, , AP, các xâu S1, , SP có thể nhập từ file hoặc từ bàn phím Thông báo số nhận đợc ra màn hình
Bài 46 Nhập từ bàn phím một xâu ký tự S Thông báo ra màn hình xâu X ngắn nhất
sao cho S là ghép của một số lần liên tiếp của X (có thể X=S)
Bài 47 Biết dạng nhị phân B1B2 BM của một số nguyên dơng N mà M rất lớn do
đó ta không thể chuyển nó thành dạng thập phân một cách thông thờng Hãy tìm phần d của phép chia N cho 15 trong hệ thập phân Dạng nhị phân của số N nhập từ bàn phím
nh một xâu ký tự chỉ gồm các ký tự 0 và 1 Hãy thông báo ra màn hình kết quả
Bài 48 Một nhóm gồm N ngời dánh số từ 1 đến N (N<=100) ngồi quanh một bàn
tròn theo thứ tự từ 1 đến N theo chiều kim đồng hồ và chơi một trò chơi nh sau: một
ng-ời nào đó bắt đầu đếm từ số 1, ngng-ời tiếp theo (theo chiều kim đồng hồ) đếm số 2, cứ tiếp tục nh vậy cho tới khi ai đếm đến số S thì ra khỏi bàn Tiếp tục, ngời ngồi cạnh đó lại bắt đầu đếm từ số 1 cho tới khi ai đếm đến số S thì lại ra khỏi bàn,
Nhập từ bàn phím các số nguyên dơng N, S và L
3.1 Nếu bắt đầu đếm từ ngời số 1 thì ngời nào còn lại cuối cùng?
3.2 Nếu ngời còn lại cuối cùng là ngời thứ L thì bắt đầu đếm từ ngời nào?
Các câu trả lời viết ra màn hình
Bài 49 Nhập hai số nguyên dơng M và N In ra mọi nghiệm nguyên không âm của
phơng trình
X1 + X2 + + XN = M
Bài 50 Viết chơng trình làm các việc sau:
- Nhập một số thập phân bất kỳ không quá 1000000 và có không quá 6 số lẻ sau dấu phảy
- Viết ra màn hình dạng viết của số thập phân này Ví dụ nếu nhập số 13.24, phải
thông báo ra màn hình dòng chữ mời ba phẩy hai mơi bốn.
Bài 51 Viết chơng trình làm các việc sau:
- Nhập từ bàn phím một xâu ký tự S độ dài không quá 40 chỉ gồm các ký tự 0 và 1
- Biến đổi xâu S thành xâu S1 nh sau: đọc từ trái sang phải xâu S, thay những xâu con chỉ gồm các ký tự 1 liên tiếp giữa các ký tự 0 bởi số thập phân nhận nó làm dạng nhị phân và thay những xâu con chỉ gồm các ký tự 0 liên tiếp giữa các ký tự 1 bởi dạng nhị phân của độ dài của nó, giữa các đoạn này đặt ký tự rỗng ngăn cách Thông báo ra màn hình xâu S1 Ví dụ nếu S = 000111100 thì S1 = 11 15 10
Trang 9- Giả sử biết S1 đợc nhập từ bàn phím, hãy khôi phục lại xâu S và viết ra màn hình.
Bài 52 Viết chơng trình làm các việc sau:
1 Nhập từ file text DT.TXT số nguyên dơng N ghi ở dòng thứ nhất, N<=100 và mảng A[1 N,1 N] là ma trận kề của một đồ thị vô hớng, dòng thứ i+1 của file ghi dòng thứ i của mảng A
2 Hãy xét xem đồ thị đó có bao nhiêu thành phần liên thông và mỗi thành phần liên thông gồm các đỉnh nào
3 Nhập từ bàn phím hai số nguyên dơng U và V, 1<=U,V<=N, là hai đỉnh của đồ thị Hãy thông báo ra màn hình có hay không đờng đi từ U đến V và đờng đi đó đi qua những đỉnh nào
Bài 53 Cho một hình chữ nhật kích thớc MxN, M, N nguyên dơng Hình này đợc
chia thành MxN ô vuông đơn vị bằng các đờng song song với các cạnh Trên ô vuông [i,j] (dòng i cột j) ghi một số nguyên dơng A[i,j]<=30000
1 Nhập từ file text MANG.TXT số nguyên dơng M, N ghi ở dòng thứ nhất, M, N<=100 và mảng A[1 M,1 N] các số nguyên dơng, dòng thứ i+1 của file ghi dòng thứ i của mảng
2 Từ một ô ta có thể di chuyển đến một ô kề cạnh với nó nếu trị tuyệt đối của hiệu hai số ghi trong hai ô đó là một số nguyên tố Từ một ô ta có thể đi đến một ô khác của mảng bằng một dãy các di chuyển nh vậy Một tập hợp K các ô đợc gọi là một miền nếu giữa hai ô bất kỳ của K đều có thể đi đến đợc nhau nhng từ một ô bất kỳ thuộc K ta không thể đi đến một ô không thuộc K Hãy thông báo ra màn hình số miền và mỗi miền gồm các ô nào (có thể ghi ra file)
3 Nhập từ bàn phím bốn số nguyên dơng U, V, X, Y, U, X <= M, V, Y <= N Hãy thông báo ra màn hình liệu có thể đi từ ô [U,V] đến ô [X,Y] đợc không; nếu đi đợc thì
đờng đi đó qua các ô nào (có thể ghi ra file)
Bài 54 Nhập từ bàn phím hai số nguyên dơng M và N Hãy thông báo ra màn hình
xem có thể nhận đợc M bằng cách gạch đi từ N một số chữ số không?
Bài 55 Trên mặt phẳng toạ độ một hình chữ nhật với các cạnh song song với các
trục toạ độ đợc xác định bởi hai đỉnh đối tâm Trong Bài này, mọi hình chữ nhật đều có các cạnh song song với các trục toạ độ
1 Nhập từ file CN.TXT số nguyên dơng N<=30 ghi ở dòng thứ nhất Trong N dòng tiếp theo mỗi dòng ghi 4 số là toạ độ của hai đỉnh đối tâm của một hình chữ nhật, các số này là nguyên có giá trị tuyệt đối không quá 100
2 Hãy xác định hình chữ nhật nhỏ nhất S chứa N hình chữ nhật đã cho Thông báo
ra màn hình 4 số là toạ độ của hai đỉnh đối tâm của hình chữ nhật này
3 Tìm diện tích phần của hình S không nằm trong hình chữ nhật nào trong số N hình trên Thông báo kết quả ra màn hình
Bài 56 Nhập từ bàn phím một số nguyên dơng N<=3000000 và in ra màn hình số
chữ số 1 của biểu diễn số N trong hệ nhị phân
Bài 57 Ta xây dựng một dãy vô hạn chỉ gồm các chữ số 0, 1, 2 qua các bớc nh sau:
- Tại bớc 0, phần đầu của dãy là 0
- Nếu tại bớc k ta đã xây dựng đợc phần đầu của dãy là a[1]a[2] a[m], thì tại bớc k+1, phần đầu của dãy là a[1]a[2] a[m]b[1]b[2] b[m] mà với 1 <= i <= m, b[i] = a[i]+1 (mod 3) Nh vậy dãy đó đợc xây dựng nh sau:
0 ị 01 ị 0112 ị 01121220 ị 0112122012202001 ị
Nhập từ bàn phím số nguyên dơng N<=3000000000 Hãy in ra màn hình chữ số thứ
N của dãy này
Bài 58 Nhập tám số thực X1, Y1, X2, Y2, AX, AY, CX, CY trong đó (X1, Y1) là
toạ độ của điểm M1, (X2, Y2) là toạ độ của điểm M2, (AX, AY) và (CX, CY) t ơng ứng
là toạ độ của hai đỉnh đối tâm A, C của một hình chữ nhật ABCD có các cạnh song song với các trục toạ độ Hãy trả lời ra màn hình vị trí tơng đối của đoạn M1M2 đối với hình chữ nhật ABCD thuộc trờng hợp nào trong ba trờng hợp sau:
- Trờng hợp 1: M1M2 nằm ngoài hình chữ nhật (mọi điểm của đoạn nằm ngoài hình chữ nhật)
- Trờng hợp 2: M1M2 nằm trong hình chữ nhật (mọi điểm của đoạn nằm trong hình chữ nhật có thể trên biên)
Trang 10- Trờng hợp 3: Có điểm của M1M2 nằm trong hình chữ nhật và có điểm của M1M2 nằm ngoài hình chữ nhật
Bài 59 Nhập từ bàn phím một số nguyên dơng N<=1000 và in ra màn hình xâu ký
tự S độ dài N chỉ gồm các ký tự 0 hay 1 sao cho S không có xâu con nào xuất hiện liên tiếp 3 lần trong nó
Bài 60 Viết chơng trình làm các việc sau:
- Nhập một số nguyên dơng N<=200 và hai dãy N số nguyên A[1], , A[N]; B[1], , B[N] (có thể từ file hoặc từ bàn phím)
- Thông báo ra màn hình: hai dãy đó có cùng các số hạng nh nhau và chỉ khác nhau
về thứ tự sắp xếp không
Bài 61 Có N điểm đánh số từ 1 đến N, N<=100, và N số nguyên dơng A1, A2, ,
AN Hãy tìm cách nối các cặp điểm bởi các đoạn thẳng sao cho với mọi i, 1 <= i <= N,
điểm i đợc nối với đúng Ai điểm Chơng trình phải nhập số N, N số A[1], , A[N] và viết ra màn hình hoặc file cách nối mỗi điểm với các điểm khác
Bài 62 Nhập từ bàn phím hai số nhị phân X và Y Hãy in ra màn hình số nhị phân Z
có giá trị lớn nhất có thể đợc mà Z nhận đợc từ X bằng cách gạch đi một số chữ số nhị phân nào đó và Z cũng nhận đợc từ Y bằng cách gạch đi một số chữ số nhị phân nào đó
Bài 63 Cho n đội bóng thi đấu theo thể thức mỗi đội đều đấu với n-1 đội còn lại Ta
gọi một giai đoạn của giải là một bảng trong đó ghi rõ từng cặp đội đã đấu với nhau hay cha Viết chơng trình làm các việc sau:
1 Nhập từ bàn phím số n các đội bóng, n > 2
2 Chọn cách thể hiện một giai đoạn của giải và nhập một giai đoạn nào đó từ bàn phím
3 Tại giai đoạn đó của giải, hãy tìm và in ra ba đội bóng hoặc đều đã đấu với nhau hoặc đều cha đấu với nhau nếu có ba đội nh vậy Nếu không có, hãy thông báo là không có
Bài 64 Một hãng buôn có n cửa hiệu và n ngời bán hàng Mỗi ngời bán hàng có thể
đi trực tiếp đến một số cửa hiệu bằng ô tô buýt Hãy viết chơng trình giải Bài toán sau:
1 Nhập từ bàn phím số n > 3
2 Sinh ngẫu nhiên một bảng thể hiện với mỗi ngời bán hàng một số cửa hiệu mà
ng-ời đó có thể đi tới trực tiếp bằng ô tô buýt
3 Hãy giúp chủ hãng phân bổ n ngời bán hàng làm ở n cửa hiệu sao cho số ngời đi trực tiếp tới nơi làm việc bằng ô tô buýt là nhiều nhất In ra màn hình phân công đó và thông báo có bao nhiêu ngời đi trực tiếp tới nơi làm việc bằng ô tô buýt
Bài 65 Trong môt giải bóng đá có n đội tham gia,mỗi đội đều có sân bóng riêng và
các trận đấu chỉ diễn ra trên các sân của n đội này
Trong giải, hai đội gặp nhau đúng một lần và trận đấu diễn ra trên sân của một trong hai đội Giải đợc tổ chức theo các vòng đấu, trong mỗi vòng, các trận diễn ra đồng thời Cần thu xếp lịch đấu sao cho số vòng ít nhất có thể đợc và trong toàn giải, số trận đấu trên sân nhà và số trận đấu trên sân khách của mỗi đội không chênh nhau quá 1
Hãy nhập từ bàn phím số đội bóng n và in lịch thi đấu từng vòng ghi rõ từng trận đấu
đội nào gặp đội nào và trên sân nào ra file
Bài 66 Cho n điểm khác nhau trên mặt phẳng toạ độ vuông góc pi = (xi,yi),
1<=i<=n Xét đờng gấp khúc lần lợt nối các điểm p1, p2, ,pn, p1
Hãy trả lời các câu hỏi sau ra màn hình:
1 Đờng gấp khúc này có tự cắt không, tức là có hay không các đỉnh pi và pj sao cho
đoạn (pi, pi+1) cắt đoạn (pj, pj1) tại điểm không là các đầu mút
2 Nếu đờng gấp khúc không là tự cắt thì nó có phải là một đa giác lồi n đỉnh hay không?
3 Nếu không, hãy tìm trong số n điểm trên các điểm lập thành một đa giác lồi bọc tất cả n điểm
Bài 67 Cho một bảng chữ nhật chia thành các ô vuông, một chiều m ô, một chiều n
ô, tại ô vuông [i,j] ghi số nguyên A[i,j] Ta gọi một hình chữ nhật trong bảng này là tập