You are on page 1of 8

Contents

Bài 1. TÍNH DIỆN TÍCH (AREA.CPP)............................................................................................................ 1


Bài 2. CHƠI BÀI (CNTWINS.CPP) ................................................................................................................. 2
Bài 3. SỐ LẺ (ODDNUMS.CPP) ....................................................................................................................... 2
Bài 4. CHẠY TIẾP SỨC (RELAY.CPP) ........................................................................................................... 3
Bài 5. MUA SÁCH (BOOKS.CPP) .................................................................................................................... 3
Bài 6. ĐOẠN CÓ TỔNG LỚN NHẤT (MAXSEG.CPP) ................................................................................. 4
Bài 7. NHÂN ĐA THỨC (POLYMUL.CPP) ................................................................................................... 4
Bài 8. XẾP GIẦY (CNTPAIRS.CPP) ................................................................................................................ 5
Bài 9. ĐUA ROBOT (ROBOT.CPP) ................................................................................................................ 6
Bài 10. SƠN HÌNH VUÔNG. COLORS.CPP...................................................................................................... 6

Bài 1. TÍNH DIỆN TÍCH


Cánh đồng của Phú Ông là một vùng đất hình tròn. Năm nay, Phú Ông quyết định thay đổi giống
cây trồng: thay vì trồng lúa ông sẽ trồng hoa. Bờm được giao nhiệm vụ trồng ba loại hoa: hoa
hướng dương, hoa thạch thảo tím và hoa hồng. Thay vì chia hình tròn làm 3 phần để trồng hoa cho
dễ, Bờm lại chia khu đất như hình vẽ phía dưới:

• Phần tô màu vàng là phần Bờm cho trồng hoa hướng dương.
• Phần tô màu tím trồng hoa thạch thảo.
• Phần tô màu đỏ Bờm cho trồng hoa hồng.
Khi Phú Ông hỏi về diện tích Bờm đã trồng hoa mỗi loại thì Bờm lại không nhớ, anh chỉ nhớ được
độ dài của a, b, c là độ dài 3 cạnh của tam giác (như dưới hình vẽ). Bạn hãy giúp Bờm tính diện
tích màu vàng, màu tím và màu đỏ.

Dữ liệu: Vào từ file văn bản AREA.INP gồm một dòng ghi ba số thực a, b, c là độ dài ba cạnh của
tam giác.
Kết quả: Ghi ra file văn bản AREA.OUT gồm ba số tương ứng là diện tích phần đất màu
vàng, màu tím và màu đỏ (lấy chính xác đến 4 chữ số sau dấu chấm thập phân) Biết rằng,
hằng số 𝜋 = 3.1415926535897.

Ví dụ:
Sample Input Sample Output
3 4 5 13.6350 2.8584 3.1416
4 30 32 954.8794 45.2993 8.2824

Bài 2. CHƠI BÀI (CNTWINS.CPP)


Bờm và Cuội chơi trò chơi đánh bài, sau mỗi ván bài nếu Bờm thắng ghi một số 0, Cuội thắng ghi
một số 1. Hỏi sau 𝑛 lần chơi ai là người thắng nhiều hơn?

Dữ liệu: Vào từ file văn bản CNTWINS.INP gồm::

• Dòng đầu tiên ghi số 𝑛 (𝑛 ≤ 105)


• Dòng tiếp theo ghi 𝑛 số nguyên chỉ gồm hai số 0 hoặc 1.
Kết quả: Ghi ra file văn bản CNTWINS.OUT gồm chữ BOM nếu Bờm là người có số ván
thắng cuộc nhiều hơn, CUOI nếu Cuội thắng nhiều ván hơn và -1 nếu số ván thắng của hai
người bằng nhau
Ví dụ:
Sample Input Sample Output
4 CUOI
1 1 1 0
5 BOM
0 0 1 0 1

Bài 3. SỐ LẺ (ODDNUMS.CPP)
Cho dãy số nguyên 𝐴 = (𝑎1 , 𝑎2 , … , 𝑎𝑛 ), hãy in ra các số lẻ trong dãy theo thứ tự ngược lại
với thứ tự trong dãy.
Dữ liệu: Vào từ file văn bản ODDNUMS.INP gồm:
• Dòng 1 chứa số nguyên dương 𝑛 ≤ 105
• Dòng 2 chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 cách nhau bởi dấu cách (∀𝑖: |𝑎𝑖 | ≤ 109 )
Kết quả: Ghi ra file văn bản ODDNUMS.OUT một dòng gồm các số lẻ trong dãy theo thứ tự
ngượclại với thứ tự trong dãy, hai số liên tiếp phải ghi cách nhau bởi dấu cách
Ví dụ:

Sample Input Sample Output


5
7 9 1 5
5 4 1 9 7
Bài 4. CHẠY TIẾP SỨC (RELAY.CPP)
Giải chạy đua tiếp sức cúp NHÀ đang đến hồi gay cấn, Bờm – đội trưởng đang nghiên cứu
chiến lược cho đội mình để có thể về sớm nhất tại vòng đua tiếp theo.
Biết rằng, trên đường đua người ta đặt 𝑛 điểm (được đánh số lần lượt từ 1 đến 𝑛), điểm 1 là
vạch xuất phát, điểm 𝑛 là đích. Các điểm này được đặt cách đều nhau và ban đầu tại mỗi điểm
sẽ có 1 vận động viên chờ để chạy đua. Luật của cuộc đua như sau:
Vận động viên ở vạch xuất phát sẽ cầm trong tay một chiếc gậy tiếp sức và chạy về đích. Đến
điểm tiếp theo, vận động viên này có 2 lựa chọn:
• Trao gậy cho vận động viên tại điểm đó để vận động viên này tiếp tục thực hiện cuộc
đua (thời gian giao gậy coi như không đáng kể)
• Hoặc tiếp tục thực hiện cuộc chạy đua mà không nhường gậy cho vận động viên tại
điểm đó (vận động viên này sẽ không tham gia vào cuộc chạy đua nữa).
Tiếp tục như vậy cho các điểm tiếp theo. Cuộc chơi hoàn thành khi gậy tiếp sức đã về đến
đích.

Yêu cầu: Biết thời gian để vận động viên ở điểm thứ 𝑖 chạy đến điểm tiếp theo là 𝑎𝑖 (đơn vị
thời gian) bạn hãy xác định khoảng thời gian ít nhất đội của Bờm về được đích.
Dữ liệu: Vào từ file văn bản RELAY.INP gồm:
• Dòng đầu tiên chứa số nguyên 𝑛 (1 ≤ 𝑛 ≤ 105 )
• Dòng thứ 2 gồm 𝑛 số nguyên dương 𝑎1 , 𝑎2 , … 𝑎𝑛 (1 ≤ 𝑎𝑖 ≤ 109 )
Kết quả: Ghi ra file văn bản RELAY.OUT gồm một số nguyên là thời gian ít nhất để đội của
Bờm về đến đích.
Ví dụ:
Sample Input Sample Output
6 12
3 4 3 2 1 5

Bài 5. MUA SÁCH (BOOKS.CPP)


Bờm đi hiệu sách và mua 𝑛 quyển sách đánh số từ 1 tới 𝑛, quyển sách thứ 𝑖 có giá là 𝑎𝑖. Hiệu
sách cho phép thanh toán tiền các quyển sách theo hai cách:
• Trả tiền riêng cho mỗi quyển sách với giá đã định
• Hoặc gói ba quyển sách thành một gói và chỉ cần trả tiền cho hai quyển sách có giá
đắt nhất trong số ba quyển để thanh toán cho cả gói.
(Mỗi quyển sách chỉ được thanh toán một lần)
Yêu cầu: Tìm giúp Bờm cách thanh toán sao cho tổng số tiền phải trả là nhỏ nhất
Dữ liệu: Vào từ file văn bản BOOKS.INP gồm
• Dòng 1 chứa số nguyên dương 𝑛 ≤ 105
• Dòng 2 chứa 𝑛 số nguyên dương 𝑎1 , 𝑎2 , … , 𝑎𝑛 (∀𝑖: 𝑎𝑖 ≤ 109 ) cách nhau bởi dấu cách
Kết quả: Ghi ra file văn bản BOOKS.OUT gồm một số nguyên duy nhất là tổng số tiền phải
trả theo phương án tìm được.
Ví dụ:

Sample Input Sample Output Giải thích

8 180 Thanh toán quyển 1: $10


10 40 40 20 20 30 30 50 Thanh toán gói 3 quyển
(2, 3, 8): $90
Thanh toán gói 3 quyển
(4, 6, 7): $60
Thanh toán quyển 5: $20
Tổng: 180

Bài 6. ĐOẠN CÓ TỔNG LỚN NHẤT (MAXSEG.CPP)


Cho dãy số nguyên 𝐴 = (𝑎1 , 𝑎2 , … , 𝑎𝑛 ). Ta gọi một đoạn là: một dãy con gồm các phần tử
liên tiếp của dãy 𝐴. Giá trị của một đoạn là tổng của tất cả các phần tử trong đoạn.
Yêu cầu: Trong tất cả các đoạn khác rỗng, tìm đoạn có giá trị lớn nhất và cho biết giá trị
đoạn đó.
Dữ liệu: Vào từ file văn bản MAXSEG.INP gồm

• Dòng 1 chứa số nguyên dương 𝑇 ≤ 105 là số test


• 𝑇 nhóm dòng tiếp theo, mỗi nhóm dòng gồm 2 dòng chứa dữ liệu một test:
o Dòng 1 chứa số nguyên dương 𝑛 ≤ 105
o Dòng 2 chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 cách nhau bởi dấu cách (∀𝑖: |𝑎𝑖 | ≤
106 )
Tổng các giá trị 𝑛 trong toàn bộ 𝑇 test không vượt quá 105
Kết quả: Ghi ra file văn bản MAXSEG.OUT sao cho ứng với mỗi test, ghi ra một số nguyên
duy nhất trên một dòng là giá trị của đoạn tìm được
Ví dụ

Sample Input Sample Output


2 8
7 1
-3 2 -1 3 4 -5 2
8
-1 -1 -1 -1 1 -1 -1 -1

Bài 7. NHÂN ĐA THỨC (POLYMUL.CPP)


Cho hai đã thức

𝐴(𝑥) = 𝑎𝑚𝑥𝑚 + 𝑎𝑚−1𝑥𝑚−1 + ⋯ + 𝑎1𝑥 + 𝑎0


𝐵(𝑥) = 𝑏𝑛𝑥𝑛 + 𝑏𝑛−1𝑥𝑛−1 + ⋯ + 𝑏1𝑥 + 𝑏0

Tìm đa thức

𝐶(𝑥) = 𝑐𝑘𝑥𝑘 + 𝑐𝑘−1𝑥𝑘−1 + ⋯ + 𝑐1𝑥 + 𝑐0

Sao cho
𝐶(𝑥) = 𝐴(𝑥) × 𝐵(𝑥)

Ví dụ với 𝐴(𝑥) = 2𝑥 + 3; 𝐵(𝑥) = 𝑥2 − 4𝑥 + 5 ta có

(2𝑥 + 3) × (𝑥2 − 4𝑥 + 5) = 2𝑥3 − 5𝑥2 − 2𝑥 + 15

Dữ liệu: Vào từ file văn bản POLYMUL.INP gồm

• Dòng 1 chứa số nguyên dương 𝑇 ≤ 10 là số test


• 𝑇 nhóm dòng tiếp theo, mỗi nhóm gồm 3 dòng chứa dữ liệu về một test
o Dòng 1 chứa hai số nguyên không âm 𝑚, 𝑛 ≤ 1000
o Dòng 2 chứa 𝑚 + 1 số nguyên 𝑎𝑚, 𝑎𝑚−1,… , 𝑎0 theo đúng thứ tự đó (∀𝑖: |𝑎𝑖 | ≤ 1000;
𝑎𝑚 ≠ 0)
o Dòng 3 chứa 𝑛 + 1 số nguyên 𝑏𝑛,𝑏𝑛−1, … , 𝑏0 theo đúng thứ tự đó (∀𝑗: |𝑏𝑗| ≤ 1000;𝑏𝑛 ≠
0)
Các số trên một dòng của input file được ghi cách nhau bởi dấu cách

Kết quả: Ghi ra file văn bản POLYMUL.OUT Ứng với mỗi test, ghi ra các số nguyên 𝑐𝑚+𝑛,𝑐𝑚+𝑛−1,… , 𝑐0
trên một dòng theo đúng thứ tự cách nhau bởi dấu cách
Ví dụ
Sample Input Sample Output
2 2 -5 -2 15
1 2 5 16 34 60 61 52 32
2 3
1 -4 5
3 3
1 2 3 4
5 6 7 8

Bài 8. XẾP GIẦY (CNTPAIRS.CPP)


Sau khi làm việc cho Phú Ông một thời gian dài, Bờm nhận ra rằng “phi thương bất phú” nên anh
quyết định mở cửa hàng bán giầy. Một ngày nọ, Bờm kiểm tra kho và thấy trong kho còn lại 2 ×
𝑛 chiếc giầy, trong đó có 𝑛 chiếc giầy chân trái với kích thước lần lượt là 𝑎0, 𝑎1, … , 𝑎𝑛−1, 𝑛 chiếc
giày chân phải có kích thước là 𝑏0, 𝑏1, … , 𝑏𝑛−1. Hai chiếc giầy chỉ có thể hợp thành một đôi: nếu
hai chiếc đó có cùng kích thước và gồm một chiếc chân trái, 1 chiếc chân phải. Bờm quyết định
mang một số chiếc giầy đi đổi để tất cả chiếc giầy đều có thể ghép thành đôi.

Yêu cầu: Hãy xác định giúp Bờm số lượng nhỏ nhất các chiếc giầy cần đổi để tất cả các chiếc giày
đều có thể ghép thành đôi.
Dữ liệu: Vào từ file văn bản CNTPAIRS.INP
• Dòng 1 ghi số nguyên 𝑛 (1 ≤ 𝑛 ≤ 105)
• Dòng 2: 𝑛 số nguyên 𝑎0, 𝑎1, … , 𝑎𝑛−1 (1 ≤ 𝑎𝑖 ≤ 105).
• Dòng 3: 𝑛 số nguyên 𝑏0, 𝑏1, … , 𝑏𝑛−1(1 ≤ 𝑏𝑖 ≤ 105).
Kết quả: Ghi ra file văn bản CNTPAIRS.OUT một số 𝑘 là số chiếc giầy ít nhất Bờm cần mang đi
đổi.
Ví dụ:
CNTPAIRS.INP CNTPAIRS.OUT

3 1
1 3 1
3 2 1

Bài 9. ĐUA ROBOT (ROBOT.CPP)


Trong cuộc đua tốc độ có 𝑛 robot tham gia được đánh số từ 0 đến 𝑛 − 1. Đường đua có độ dài
𝑑(𝑚). Robot thứ 𝑖(0 ≤ 𝑖 ≤ 𝑛 − 1) có vận tốc 𝑣𝑖 (m/phút). Các robot xuất phát theo thứ tự từ 0 đến
n-1 và cách nhau 1 phút. Robot 𝑖 được gọi là vượt robot 𝑗 (0 ≤ 𝑗 < 𝑛) nếu 𝑖 xuất phát sau 𝑗 và về
đích trước 𝑗.
Yêu cầu: Xác định số lần vượt nhau của tất cả các robot trong cuộc đua.
Dữ liệu: Vào từ file văn bản ROBOT.INP gồm
• Dòng 1: chứa hai số nguyên 𝑛 và 𝑑 (𝑛 ≤ 5.103, 𝑑 ≤ 109)
• Dòng 2: chứa n số nguyên dương 𝑣𝑖 (0 ≤ 𝑖 ≤ 𝑛 − 1), mỗi số không vượt quá 1000.
Kết quả: Ghi ra file văn bản ROBOT.OUT gồm 1 số 𝑘 là số lần vượt nhau của tất cả các Robot.
Ví dụ:
Sample input Sample output Giải thích

5 10 7 Robot 2 vượt 1;
1 2 4 3 8 Robot 3 vượt 1,2;
Robot 4 vượt 1;
Robot 5 vượt
1,2,4;
Tổng = 7

Bài 10. SƠN HÌNH VUÔNG. COLORS.CPP


Cho một hình vuông kích thước 𝑛 × 𝑛 chia thành các ô vuông đơn vị 1 × 1, . Người ta quyết
định sơn hình vuông theo cách sau:
- Ban đầu, sơn toàn bộ các hình vuông đơn vị bao phía ngoài cùng của hình vuông ban
đầu bằng màu đỏ - ta gọi là lớp hình vuông thứ nhất.
- Sơn toàn bộ các hình vuông đơn vị giáp với lớp ngoài cùng bằng màu xanh – gọi là lớp
hình vuông thứ 2.
- Lớp hình vuông đơn vị tiếp theo giáp với lớp hình vuông thứ 2 được sơn bởi màu vàng
– gọi là lớp hình vuông thứ 3.
- Người ta tiếp tục sơn các lớp hình vuông đơn vị tiếp theo bởi lần lượt các màu đỏ -
xanh – vàng cho tới khi tất cả các hình vuông đơn vị đều được tô màu.
Ví dụ với hình vuông kích thước n = 11, sau khi sơn ta có hình ảnh sau:

Yêu cầu: Cho độ dài cạnh của hình vuông là 𝑛 và 𝑘 câu hỏi, mỗi câu hỏi có dạng (𝑖, 𝑗) - với ý
nghĩa bạn hãy cho biết hình vuông đơn vị ở hàng thứ 𝑖 (tính từ trên xuống) cột thứ 𝑗 (tính
từ trái sang) được tô bởi màu gì?
Dữ liệu: Vào từ file văn bản COLORS.INP gồm:
- Dòng 1 gồm 2 số 𝑛, 𝑘 (𝑛 ≤ 109, 𝑘 ≤ 103).
- 𝑘 dòng tiếp theo, mỗi dòng gồm hai số 𝑖, 𝑗 (1 ≤ 𝑖, 𝑗 ≤ 𝑛) tương ứng là 𝑘 câu hỏi.
Kết quả: ghi ra file văn bản COLORS.OUT gồm k dòng, dòng thứ 𝑖 ghi RED hoặc BLUE hoặc
YELLOW với ý nghĩa hình vuông được hỏi tô bởi màu đỏ/xanh/vàng.
Ví dụ:
Sample input Sample output Mô tả
11 4 BLUE
2 5 YELLOW
7 9 RED
4 4 YELOW
9 3

You might also like