You are on page 1of 5

ĐẾM SỐ HẠNG (TERMS.

*)

Cho số nguyên dương 𝑆 và tập 𝐴 gồm 𝑁 số nguyên dương a1, a2, a3,… aN đôi một khác nhau
và a1=1. Ta biết rằng S có thể viết thành tổng các phần tử trong A.

Hãy cho biết tổng này chứa ít nhất là bao nhiêu số hạng.

Ví dụ: Với 𝑆 = 14 và tập 𝐴 gồm 6 phần tử là 1, 2, 3, 5, 7, 10 thì có thể viết S theo nhiều
phương án sau:

𝑆 = 1 + 1 + 2 + 10 (4 số hạng)

𝑆 = 1 + 3 + 10 (3 số hạng)

𝑆 = 7 + 7 (2 số hạng)

Trong đó phương án thứ 3 là tối ưu vì chỉ dùng 2 số hạng.

Input: file Terms.inp


 Dòng thứ nhất ghi số 𝑆, 𝑁 (1 ≤ 𝑆 ≤ 105 , 1 ≤ 𝑁 ≤ 100 ).
 Tiếp đến là giá trị a1, a2, a3,… aN có thể viết trên nhiều dòng (1 ≤ 𝑎𝑖 ≤ 105 ). Các số
được viết cách nhau ít nhất một dấu cách, a1=1, dãy 𝐴 được sắp tăng với các phần
tử đôi một khác nhau.
Output: file Terms.out
 Gồm một số duy nhất 𝐾 là số số hạng tối thiểu.

Ví dụ
Terms.inp Terms.out
14 6 2
1 2 3 5 7 10

TÍNH TỔNG (SUM.*)


Sau buổi học về số học, Minh đã biết cách tính tổng của n số tự nhiên liên tiếp. Ở
nhà, Minh tiếp tục làm các bài tập về tính tổng của các số tự nhiên liên tiếp. Minh thắc
mắc, liệu với số tự nhiên K thì có thể phân tích K thành tổng các số tự nhiên liên tiếp hay
không?. Ví dụ với K = 9 (có thể phân tích: 9 = 9; 9 = 5+4; 9 = 2 + 3 + 4) thì có 3 cách
phân tích thành tổng các số tự nhiên liên tiếp.
Yêu cầu: Viết chương trình giúp Minh tìm số cách phân tích số nhiên K thành tổng các
số tự nhiên liên tiếp.
Dữ liệu vào: Từ file văn bản SUM.INP một dòng duy nhất chứa số nguyên dương K (1
≤ K ≤ 109).
Kết quả: File SUM.OUT dòng duy nhất chứa số cách phân tích tìm được.
Ví dụ:
Sum.inp Sum.out
9 3
Ràng buộc:
 Có 60% số test ứng với 60% số điểm của bài có K ≤ 105;
 Có 40% số test còn lại ứng với 40% số điểm của bài có K < 109.

XÂY DỰNG NHÀ MÁY NƯỚC (PIPELINE.*)

Một huyện X có Phú Yên có N xã được đánh số từ 1 đến N. Với mong muốn cung cấp nguồn
nước sạch tới mọi hộ dân trong huyện, ngài chủ tịch huyện quyết định sẽ xây dựng một hệ
thống cấp nước hiện đại, nhưng tiết kiệm chi phí nhất, chi phí xây dựng sẽ bao gồm chi phí
xây dựng nhà máy nước và chi phí lắp đặt đường ống. Theo kế hoạch, sẽ đặt nhà máy nước
tại một xã trong huyện, sau đó lắp đường ống qua các xã. Tuy nhiên do địa hình khác nhau
nên chi phí xây dựng nhà máy nước tại mỗi xã cũng vì thế mà khác nhau. Là chuyên gia
phòng kế hoạch, bạn hãy giúp vị chủ tịch tìm ra phương án tốt nhất với số tiền bỏ ra ít nhất.

Input: file Pipeline.inp


 Dòng thứ nhất ghi số 𝑁(0 ≤ 𝑁 ≤ 300).
 𝑁 dòng tiếp theo, mỗi dòng chứa số 𝑄𝑖 cho biết chi phí xây dựng nhà máy nước tại
xã 𝑖 (0 ≤ 𝑄𝑖 ≤ 106 )
 Tiếp theo là một bảng kích thước 𝑁 ∗ 𝑁, số 𝐴[𝑖, 𝑗] trong bảng cho biết chi phí lắp ống
dẫn nước giữa 2 xã 𝑖 và 𝑗. (0 ≤ 𝐴[𝑖, 𝑗] ≤ 103 )

Output: file Pipeline.out


 Cho biết xã xây dựng nhà máy nước và chi phí thấp nhất huyện X phải đầu tư.

Ví dụ
Pipeline.inp Pipeline.out
4 49
5
4
4
3
0222
2033
2304
2340

TÌM GIAO ĐIỂM (HMAX.*)

Trong lễ hội bắn pháo hoa năm nay. Tiết mục trình diễn ánh sáng trong lễ khai mạc
của chủ nhà Đà Nẵng, có N tia laser được chiếu lên trời nhờ vào các đèn chiếu có công suất
rất lớn, vì vậy các tia laser này có thể đi rất xa. Các tia laser được chiếu lên nằm trên cùng
một mặt phẳng thẳng đứng nên 2 tia laser hoặc là cắt nhau hoặc là không cắt nhau.
Các tia laser được biểu diễn bởi 3 số
nguyên: Một số là tọa độ X ở dưới đất của
ngọn đèn chiếu, 2 số còn lại là tọa độ của
một điểm nào đó thuộc tia laser này. Biết
rằng không có tia Laser nào trùng với mặt
đất (mặt đất được coi như là đường thẳng
y = 0). Không có đèn chiếu nào đặt cùng
một vị trí trên tục tọa độ.
Yêu cầu: Các nhà tổ chức buổi trình diễn
muốn bạn cho biết với các tia laser sẽ
được chiếu lên trời như trong kế hoạch thì 2 tia laser nào cắt nhau tại điểm cao nhất.
Input: file hmax.inp
 Dòng 1 ghi số nguyên N là số tia laser (2 ≤ 𝑛 ≤ 105 ).
 N dòng, mỗi dòng ghi 3 số nguyên xi, zi, ti với ý nghĩa là tia laser thứ i đi qua 2 điểm ( xi
, 0 ) và ( zi , ti ) (|xi|, |zi| < 106, 0< ti ≤ 106).
Output: file hmax.out
 Trong trường hợp không có 2 tia laser nào cắt nhau thì ghi ra duy nhất một số -1.
 Nếu tồn tại 2 tia Laser cắt nhau thì ghi số Hmax là độ cao lớn nhất giao điểm của 2 tia
laser.
(hmax được ghi với độ chính xác 3 chữ số sau dấu phẩy).
Ví dụ:
Hmax.inp Hmax.out
2 -1.000
-1 -2 4
2 3 5

Hmax.inp Hmax.out
4 8.000
-1 -2 4
0 1 1
3 0 4
4 4 1

GIẤC MƠ KÌ LẠ (DREAM.*)
Đầu bếp the Chef mơ thấy mình lạc vào một cuộc thi nấu ăn rất kì lạ, nơi mà chất
lượng món ăn không quan trọng bằng thời gian bạn hoàn thành nó. Mỗi đầu bếp tham gia
cuộc thi phải nấu đủ 𝑁 món ăn ở 𝑁 vị trí tạo thành một hàng dọc (để thuận tiện ta đánh số
các món ăn từ 1 đến 𝑁 từ đầu hàng đến cuối hàng). Món ăn thứ 𝑖 sẽ mất 𝑎𝑖 thời gian để nấu.
Các thí sinh sẽ chơi theo nhiều lượt cho đến khi họ nấu đủ 𝑁 món ăn. Khó khăn hơn, ở mỗi
lượt họ phải chọn 𝐾 vị trí liên tiếp và nấu hết các món ăn chưa được nấu với thời gian nấu
nhỏ nhất trong đó.
Ví dụ: nếu dãy món ăn có 5 món và có thời gian nấu lần lượt là 4, 3, 4, 3, 4 độ dài mỗi
đoạn đồ ăn trong mỗi lượt chơi là 3. Ở lượt đầu tiên nếu chọn đoạn [2, 4] the Chef sẽ nấu
được hai món có thời gian nấu là 3. Lượt thứ hai ông ta chọn đoạn [1, 3] để nấu hai đồ ăn
có thời gian nấu là 4 và dùng lượt cuối cùng chọn đoạn [3, 5] để nấu đồ ăn thứ 5.
Ai dùng ít lượt chơi nhất sẽ là người chiến thắng. Bạn hãy tính giúp đầu bếp the Chef
số lượt chơi ít nhất mà ông ta có thể dùng.

Input: file Dream.inp


• Dòng 1: Ghi 2 số nguyên dương 𝑁 và 𝐾 (1 ≤ 𝐾 ≤ 𝑁 ≤ 105 ).
• 𝑁 dòng tiếp theo: Mỗi dòng ghi một số nguyên không âm 𝐴𝑖 không quá 109 là thời
gian nấu món ăn thứ 𝑖.
Output: file Dream.out
• Ghi ra kết quả tìm được.
Ví dụ:
Dream.inp Dream.out
53 3
40
30
40
30
40

You might also like