You are on page 1of 2

VOI Training Camp ĐỀ KIỂM TRA SUMMER 2022

Contest 15
Ngày 17 tháng 8 năm 2022
Thời gian 180 phút
(Đề thi có 2 trang)

Viết chương trình giải các bài toán sau:


Bài 1. Xe buýt [BUS]
Trên một trục đường dài thẳng có 𝑛 trạm xe buýt cách đều nhau, các trạm được đánh số
từ 1 đến 𝑛. Để đi lại giữa hai trạm liên tiếp bất kì bằng xe buýt mất 𝑎 đồng. Trong nn trạm
có 𝑚 trạm đặc biệt là các trạm 𝑝1 , 𝑝2 , … , 𝑝𝑚 (1 ≤ 𝑝1 , 𝑝2 , … , 𝑝𝑚 ≤ 𝑛). Có loại xe buýt nhanh sẽ chỉ
dừng đỗ tại các trạm đặc biệt này, nếu sử dụng xe buýt nhanh để đi từ trạm đặc biệt 𝑝𝑖 đến trạm
đặc biệt 𝑝𝑗 sẽ mất 𝑏 × |𝑝𝑖 − 𝑝𝑗 | đồng.
Yêu cầu: Cho 𝑞 câu hỏi, câu hỏi thứ 𝑘 (1 ≤ 𝑘 ≤ 𝑞) cần trả lời đi từ trạm 𝑥𝑘 (1 ≤ 𝑥𝑘 ≤ 𝑛) tới
trạm 𝑦𝑘 (1 ≤ 𝑦𝑘 ≤ 𝑛) hết ít nhất bao nhiêu tiền.
Input
• Dòng đầu chứa các số nguyên dương 𝑛, 𝑚, 𝑞, 𝑎, 𝑏 (𝑎, 𝑏 ≤ 2.106 ; 2 ≤ 𝑚 ≤ 𝑛)
• Dòng thứ hai chứa 𝑚 số nguyên dương 𝑝1 , 𝑝2 , … , 𝑝𝑚 ;
• Dòng thứ 𝑘 (1 ≤ 𝑘 ≤ 𝑞) chứa hai số nguyên dương 𝑥𝑘 , 𝑦𝑘
Output
• Gồm 𝑞 dòng, dòng thứ 𝑘 chứa một số là câu trả lời cho câu hỏi thứ 𝑘.
Scoring
• Có 25% số test ứng với 25% số điểm có 𝑛, 𝑚, 𝑞 ≤ 100; 𝑎 = 𝑏
• Có 25% số test khác ứng với 25% số điểm có 𝑛, 𝑚 ≤ 100; 𝑚 = 2; 𝑝1 = 1; 𝑝2 = 𝑛.
• Có 25% số test khác ứng với 25% số điểm có 𝑛, 𝑚, 𝑞 ≤ 100
• Có 25% số test còn lại ứng với 25% số điểm có 𝑛, 𝑚, 𝑞 ≤ 106 .
Ví dụ:
Input Output
5 2 2 2 1 6
2 4 2
1 5
2 3

Bài 2. DIFFMAX
Cho một dãy gồm 𝑛 số nguyên dương 𝑎1 , 𝑎2 , … , 𝑎𝑛 và một số nguyên 𝐾. Một dãy con liên tiếp là
tập hợp các phần tử đứng cạnh nhau.
Yêu cầu: Tìm hai dãy con liên tiếp không giao nhau thỏa mãn:
• Với mỗi dãy con, hai phần tử bất kỳ trong dãy con chênh nhau không quá 𝐾.
• Tổng số lượng các phần tử trong hai dãy con là lớn nhất.
Input:
• Dòng đầu tiên chứa hai số nguyên dương 𝑛, 𝐾 (1 ≤ 𝑛 ≤ 3.105 ; 0 ≤ 𝐾 ≤ 109 )
• Dòng thứ hai chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (0 ≤ 𝑎𝑖 ≤ 109 )
Output: Một số nguyên là kết quả tìm được
Ví dụ:
Input Output
5 2 5

Trang: 1
1 3 2 5 4
5 2 4
1 3 5 2 4

Bài 3. RICEATM
Phát huy tinh thần lá lành đùm lá rách của dân tộc, trong mùa dịch COVID19, tại địa điểm X,
người dân được phát gạo miễn phí qua cây ATM gạo tự động. Cách thức hoạt động rất đơn giản,
người đến lấy gạo sẽ xếp hàng trước cây chờ được phục vụ, người đến trước được phục vụ
trước. Đến lượt mình, người đó sẽ bước lên nhận diện khuôn mặt qua máy tự động áp dụng
công nghệ trí tuệ nhân tạo nhằm phát hiện các trường hợp gian lận lấy gạo nhiều lần. Sau khi
xác thực, ATM gạo tự động chảy ra một lượng gạo cho người đó nhận. Thời gian phục vụ một
người phụ thuộc vào tốc độ thao tác của người đó.
Có 𝑛 người đang xếp hàng trước cây ATM gạo (tất nhiên họ đứng cách nhau tối thiểu 2m). Những
người này được đánh số từ 1 đến 𝑛 theo thứ tự xa dần cây ATM. Cây ATM có thể phát 1 hoặc 2
túi gạo mỗi lần, thời gian phục vụ phụ thuộc vào tốc độ thao tác của người lấy gạo. Theo đó,
người thứ 𝑖 sẽ mất thời gian 𝑎𝑖 để rút 1 túi gạo, và 𝑏𝑖 để rút 2 túi. Theo qui định mỗi người chỉ
được lấy 1 túi thôi, nhưng họ có thể rút 2 túi và chia cho người đứng ngay phía sau, sau đó cả
hai người rời khỏi hàng.
Yêu cầu: Với phương châm sẽ không có ai bị bỏ lại, chúng ta cần phục vụ người dân nhanh nhất
có thể. Giả sử biết thông tin về thời gian thao tác của mỗi người, hãy tính tổng thời gian phục vụ
ít nhất có thể. Biết rằng thời gian chuyển đổi phục vụ giữa hai người là không đáng kể.
Input:
• Dòng 1: Chứa số nguyên dương 𝑛
• Dòng 2...𝑛 + 1: Dòng 𝑖 + 1 chứa hai số nguyên dương 𝑎𝑖 , 𝑏𝑖 (1 ≤ 𝑎𝑖 ≤ 𝑏𝑖 ≤ 109 )
Output:
• Dòng đầu ghi thời gian phục vụ nhỏ nhất tìm được
• Dòng thứ hai ghi 𝑛 số nguyên, số thứ 𝑖 là số túi gạo mà người thứ 𝑖 rút ra từ cây. Nếu như
có nhiều phương án tốt nhất, in phương án có thứ tự từ điển nhỏ nhất (tức là dãy số tạo
bởi số túi gạo của 𝑛 người rút theo thứ tự từ 1 đến 𝑛 có thứ tự từ điển nhỏ nhất).
Ví dụ:
Input Output
4 8
3 3 2 0 2 0
1 1
2 5
10 11
4 7
3 3 1 2 0 1
1 1
2 5
3 4
Subtasks:
• Subtask 1: 1 ≤ 𝑛 ≤ 20 [50%]
• Subtask 2: 20 < 𝑛 ≤ 105 [50%]

---HẾT---

Thí sinh không được hỏi linh tinh. Giảm thị không giải thích lằng nhằng!

Trang: 2

You might also like