V10 HCM 25
CASE
Nộp bàiPoint: 6
Ông Pascal xây dựng một kệ tài liệu theo dạng hình tam giác có chiều cao ~h~. Các tầng được đánh số từ ~1, 2, 3, \dots, h~. Tầng ~i~ có ~i~ ngăn được đánh số từ ~1, 2, 3, \dots, i~. Minh họa như hình bên dưới:
Có ~n~ tài liệu được đánh số từ ~1, 2, 3, \dots, n~ được cất vào các ngăn trên kệ theo thứ tự từ trái sang phải và từ trên xuống dưới.
- Tầng 1: 1
- Tầng 2: 2, 3
- Tầng 3: 4, 5, 6
- Tầng 4: 7, 8, 9, 10
- ...
Do kệ quá cao nên ông thiết kế một hệ thống robot tự động có thể di chuyển đến ngăn cất tài liệu theo thứ tự ~p~ mà ông cần.
Yêu cầu: Hãy viết chương trình xác định tầng và ngăn cất tài liệu thứ ~p~.
Dữ liệu:
Vào từ tập tin văn bản CASE.INP gồm một số nguyên ~p~ (~1 \le p \le 10^{18}~) là số thứ tự tài liệu cần lấy.
Kết quả:
Ghi ra tập tin văn bản CASE.OUT gồm 2 số nguyên lần lượt là số tầng và số ngăn cất tài liệu, hai số cách nhau một khoảng trắng.
Ví dụ:
CASE.INP:
13
CASE.OUT:
5 3
Giải thích:
Các tài liệu được cất trên kệ lần lượt là:
1
2, 3
4, 5, 6
7, 8, 9, 10
11, 12, 13, 14, 15
Tài liệu thứ 13 được cất ở tầng 5, ngăn 3.
Giới hạn:
- Subtask 1: 50% số test có ~p \le 10~.
- Subtask 2: 30% số test có ~p \le 10^{12}~.
Subtask 3: 20% số test còn lại không có giới hạn nào thêm.
LUCKY NUM
Nộp bàiPoint: 6
Trong hội trại cuối năm, nhà trường tổ chức trò chơi xổ số may mắn. Thể lệ trò chơi như sau:
Học sinh sẽ chọn cặp số may mắn là cặp số mà tích của chúng có chữ số ở hàng đơn vị bằng với số ~P~ do ban tổ chức công bố.
Ban tổ chức giới hạn phạm vi chọn số bằng 2 số ~L~ và ~R~ (~L < R~). Các số được chọn phải có giá trị từ ~L~ đến ~R~.
Yêu cầu: Hãy viết chương trình xác định số lượng cặp số may mắn khi biết ~L, R~ và ~P~.
Dữ liệu:
Vào từ tập tin văn bản LUCKYNUM.INP gồm 3 dòng:
- dòng thứ nhất là số ~L~,
- dòng thứ hai là số ~R~ và
- dòng thứ ba là số ~P~ (~1 \le L \le R \le 10^9, 0 \le P \le 9~).
Kết quả:
Ghi ra tập tin văn bản LUCKYNUM.OUT một số nguyên duy nhất là số lượng cặp số may mắn.
Ví dụ:
LUCKYNUM.INP:
1
4
4
LUCKYNUM.OUT:
3
Giải thích:
3 cặp số may mắn là ~(1, 4), (2, 2)~ và ~(4, 1)~ vì tích của chúng có hàng đơn vị là 4.
Giới hạn:
- Subtask 1: 35% số test có ~R \le 1000~.
- Subtask 2: 15% số test có ~R \le 10^6, P = 5~.
- Subtask 3: 15% số test có ~P = 5~.
Subtask 4: 35% số test còn lại không có giới hạn.
HOSTING
Nộp bàiPoint: 8
Công ty Vinasat X cho thuê máy chủ có ~N~ khách hàng. Mỗi khách hàng đăng ký: ngày bắt đầu thuê (~x_i~), số ngày sử dụng (~d_i~) và dung lượng cần dùng (~k_i~). Ngày bắt đầu chạy máy chủ là ngày 1.
Yêu cầu: Viết chương trình thông báo biến động dung lượng từ ngày bắt đầu thuê (ngày có ~x_i~ nhỏ nhất) cho đến ngày cuối cùng máy chủ được sử dụng. Chỉ in ra tổng dung lượng tại các thời điểm có sự thay đổi.
Dữ liệu:
Vào từ tập tin HOSTING.INP:
- Dòng đầu ghi số nguyên dương ~N~ (~1 \le N \le 8 \cdot 10^5~).
- ~N~ dòng tiếp theo, mỗi dòng chứa ~x_i, d_i, k_i~ (~1 \le x_i + d_i \le 10^5, 1 \le k_i \le 10^9~).
Kết quả:
Ghi ra tập tin HOSTING.OUT dãy số biểu diễn sự biến động dung lượng.
Ví dụ 1:
HOSTING.INP:
3
6 2 15
3 6 9
4 5 7
HOSTING.OUT:
9 16 31 16
Giải thích:
Dung lượng thay đổi thành 9 (ngày 3), 16 (ngày 4), 31 (ngày 6) và 16 (ngày 8).
Ví dụ 2:
HOSTING.INP:
3
1 2 5
5 3 7
1 3 9
HOSTING.OUT:
14 9 0 7
Giới hạn:
- Subtask 1: 40% số test có ~N \le 100; x_i + d_i \le 100~.
- Subtask 2: 30% số test có ~N \le 2 \cdot 10^4~.
Subtask 3: 30% số test còn lại không có giới hạn.