Professional Documents
Culture Documents
Trong các đoàn đến tham quan có N người muốn mua cam. Do mọi người muốn nhường
nhau nên mỗi người chỉ mua một quả, người thứ i cho biết sẵn sàng trả pi(đồng) cho một
quả cam.
Ông Nghiệp quyết định lựa chọn đưa ra một mức giá cố định là 𝑘 (đồng) cho mỗi quả cam
trong vườn. Vì rất thích tính cách hào phóng của khách nên ông sẽ bán với giá 𝑘 cho tất
cả những người sẵn sàng trả giá lớn hơn 𝑘. Ngoài ra, nếu có những người trả giá đúng
bằng 𝑘, ông chỉ bán duy nhất cho một người khách đến sớm nhất.
Tuy hiếu khách nhưng vì miếng cơm manh áo nên ông Nghiệp vẫn muốn thu được số tiền
nhiều nhất có thế. Hãy giúp ông Nghiệp lựa chọn mức giá là một số nguyên 𝑘 để có thể
thu được nhiều tiền nhất từ việc bán cam cho 𝑁 vị khách nói trên. Biết số cam trong vườn
đảm bảo đủ cho tất cả khách tới thăm.
Dữ liệu: vào từ file văn bản ORANGE.INP có cấu trúc như sau:
• Dòng đầu chứa số nguyên dương N là số lượng khách muốn mua cam;
• Dòng sau ghi N số nguyên dương 𝑝1 , 𝑝2 , … , 𝑝𝑁 (𝑝𝑖 ≤ 106 ) mỗi số cách nhau bởi một
dấu cách.
Kết quả: Ghi ra file văn bản ORANGE.OUT một số nguyên duy nhất là số tiền nhiều nhất
mà ông Nghiệp có thể thu được.
Ví dụ:
ORANGE.INP ORANGE.OUT
4 8
1 2 5 4
Ràng buộc:
TÁCH DÃY
Cho một dãy A gồm 𝑛 số nguyên 𝑎1 , 𝑎2 , . 𝑎𝑛 ,.
Một dãy B gọi là dãy con của dãy A nếu ta có thể xóa đi một số phần tử của A để thu được B.
Ví dụ: A = (1, 4, 2, 6, 7, 3, 5, 9), khi đó B = (1, 5, 9) hay B = (4, 7, 3, 5) là các dãy con của A
nhưng B = (2, 4, 5) hay B = (6, 3, 10, 9) không là dãy con của A.
B là dãy con không giảm của A nếu dãy con này gồm các phần tử được sắp theo thứ tự
không giảm.
Yêu cầu: Hãy tìm cách chia dãy 𝐴thành một số ít nhất các dãy con không giảm.
Ví dụ: với N = 5 và dãy {1, 4, 3, 5, 3}, ta có thể chia thành hai dãy {1, 3, 3} và {4, 5}.
Dữ liệu: Vào từ file văn bản SEQ.INP
• Dòng đầu tiên ghi số nguyên dương 𝑁 (𝑁 ≤ 106 ).
• Dòng thứ hai ghi N số tự nhiên mô tả dãy 𝑎1 , 𝑎2 , … , 𝑎𝑛 , |𝑎𝑖 | ≤ 109
Kết quả: Ghi vào file văn bản SEQ.OUT Gồm 1 dòng duy nhất ghi số nguyên dương k là số
dãy con trong phép phân tích tìm được.
Ví dụ:
SEQ.INP SEQ.OUT
10 5
5 3 6 5 5 6 4 3 7 2
THU HOẠCH SỮA
Bác John có 𝑛 con bò đang trong thời gian cho thu hoạch sữa. Thời gian này, các con bò
được chăm sóc đặc biệt kĩ lưỡng sao cho lượng sữa chúng sản sinh hằng ngày là lớn nhất có
thể. Tuy nhiên, các con bò này lại rất nhạy cảm với thời tiết. Con bò thứ 𝑖 sẽ cảm thấy thoải
mái nhất khi nhiệt độ nơi chúng ở trong khoảng [𝑎𝑖 … 𝑏𝑖 ]. Vì thế, nếu nhiệt độ dưới 𝑎𝑖 chúng
sẽ sản sinh một lượng sữa là X, nếu nhiệt độ tốt nhất trong vùng [𝑎𝑖 . . 𝑏𝑖 ] chúng sẽ cho lượng
sữa là Y và nếu nhiệt độ lớn hơn 𝑏𝑖 chúng sẽ cho lượng sữa là 𝑍 (tất nhiên 𝑌 > 𝑋, 𝑌 > 𝑍).
Yêu cầu: Cho biết 𝑛, 𝑋, 𝑌, 𝑍 và vùng nhiệt độ yêu thích của mỗi con bò. Hãy tính tổng lượng
sữa nhiều nhất có thể thu hoạch được nếu nhiệt độ được điều chỉnh tối ưu nhất có thể?
Dữ liệu: Vào từ file văn bản MILK.INP
• Dòng đầu tiên là 4 số 𝑛, 𝑋, 𝑌, 𝑍 (𝑛 ≤ 20000, 0 < 𝑋, 𝑌, 𝑍 ≤ 1000).
• n dòng tiếp theo, dòng thứ i gồm hai số 𝑎𝑖 và 𝑏𝑖 (𝑎𝑖 , 𝑏𝑖 ≤ 109 ).
Kết quả: ghi ra file văn bản MILK.OUT gồm 1 số duy nhất là tổng lượng sữa lớn nhất bác
John có thể thu hoạch được.
Ví dụ:
MILK.INP MILK.OUT Giải thích
4 7 9 6 31 Khi điều chỉnh nhiệt độ phòng
5 8 là 7 hoặc 8 độ, con bò 1 và 4
3 4 sẽ cho lượng sữa là 9, con bò
13 20 2 cho lượng sữa là 7, con thứ
7 10 3 cho lượng sữa là 6. Tổng
lượng sữa: 9 + 9 + 7 + 6 =
31.
CƯA MÁY
Một hàng cây gồm 𝑛 cây đánh số từ 1 tới 𝑛, cây thứ 𝑖 có chiều cao ℎ𝑖 . Người ta muốn khai thác gỗ từ
những cây này bằng một máy cưa. Máy cưa vận hành như sau: Trước hết phải thiết lập một độ cao 𝛥
cho lưỡi cưa, sau đó di chuyển máy cưa qua hàng cây. Mỗi khi máy cưa đi qua cây độ cao ℎ > 𝛥 thì
cây đó bị cưa còn lại chiều cao Δ và người ta lấy được ℎ−Δ mét gỗ từ cây này. Dĩ nhiên những cây có
độ cao ≤ Δ không bị cưa và người ta không lấy được gỗ từ những cây đó.
Yêu cầu: Cho dãy số nguyên dương 𝑚1 , 𝑚2 , … 𝑚𝑘 . Với mỗi giá trị 𝑚𝑗, tìm số nguyên 𝛥𝑗 lớn nhất sao
cho nếu đặt độ cao của lưỡi cưa là 𝛥𝑗 thì tổng số mét gỗ khai thác được không ít hơn 𝑚𝑗 (𝑗 =
1, 2, … , 𝑘).
Dữ liệu: Vào từ file văn bản SAW.INP
Dòng 1 chứa hai số nguyên dương 𝑛, 𝑘 ≤ 105
Dòng 2 chứa 𝑛 số nguyên dương ℎ1 , ℎ2 , … ℎ𝑛 (∀𝑖: ℎ𝑖 ≤ 106 ).
Dòng 3 chứa 𝑘 số nguyên dương 𝑚1 , 𝑚2 , … , 𝑚𝑘 . (∀𝑗: 𝑚𝑗 ≤ ∑𝑛𝑖=1 ℎ𝑖 )
Kết quả: Ghi ra file văn bản SAW.OUT một dòng 𝑘 số nguyên Δ1,Δ2,…,Δ𝑘 tìm được.
Các số trên một dòng của input/output files được/phải ghi cách nhau ít nhất một dấu cách
Ví dụ:
SAW.INP SAW.OUT
4 2 15 16
20 15 10 17
7 4
Giải thích:
Nếu đặt độ cao lưỡi cưa là 15, ta khai thác được 7m gỗ: 5m từ cây 1 và 2m từ cây 3
Nếu đặt độ cao lưỡi cưa là 16, ta khai thác được 5m gỗ: 4m từ cây 1 và 1m từ cây 3.
DÃY SỐ (DAYSO.*)
Cho dãy số gồm 𝑛 (1 ≤ 𝑛 ≤ 105 ) số nguyên
𝑎1 , 𝑎2 , . . . , 𝑎𝑛
trong đó |𝑎𝑖 | ≤ 2. 109 , 𝑖 = 1, 2, . . . , 𝑛 và một số nguyên 𝑘 (|𝑘| ≤ 109 ).
Yêu cầu: Hãy xác định xem trong dãy số đã cho có tìm được hai số mà hiệu của chúng là
bằng k hay không?
Dữ liệu: Vào từ file văn bản DAYSO.INP:
∑ 𝑤𝑖 × |𝑑𝑖 − 𝑝|
𝑖=1
Hiện tại, chính phủ đang đánh giá 𝑚 đề xuất xây dựng trung tâm tại các vị trí 𝑝1 , 𝑝2 , … , 𝑝𝑚 .
Yêu cầu: Cho các số nguyên dương 𝑑1 , 𝑑2 , . . , 𝑑𝑛 ,𝑤1 , 𝑤2 , . . , 𝑤𝑛 và 𝑚 đề xuất vị trí xây dựng
trung tâm 𝑝1 , 𝑝2 , … , 𝑝𝑚 , với mỗi đề xuất hãy tính mức độ phù hợp.
Ví dụ:
Ràng buộc:
• Có 30% số test ứng với 30% số điểm của bài có 𝑛 ≤ 10; 𝑚 = 1; 𝑑𝑖 ≤ 1000;
• Có 30% test khác ứng với 30% số điểm của bài có có 𝑛 ≤ 105 ; 𝑚 ≤ 10;
• Có 20% test khác ứng với 20% số điểm của bài có có 𝑛 ≤ 105 ; 𝑚 ≤ 105 ; 𝑤𝑖 = 1;
• Có 20% số test còn lại ứng với 20% số điểm của bài có 𝑛 ≤ 105 ; 𝑚 ≤ 105 .