DÃY CON

Trên một trục số, ta có \(n\) đoạn thẳng \(L_{1},\ldots,L_{n}\); đoạn thẳng \(L_{i}\) bắt đầu tại vị trí \(A_{i}\) và có độ dài \(T_{i}\) (tức là đoạn \(L_{i}\) kết thúc tại vị trí \(A_{i} + T_{i}\)).

Ta gọi đoạn thẳng \(L_{p}\) là con của đoạn thẳng \(L_{q}\) (ký hiệu là \(L_{p} \subset L_{q}\)) nếu \(\left\{ \begin{matrix} A_{p} \geq A_{q} \\ A_{p} + T_{p} \leq A_{q} + \ T_{q} \end{matrix} \right.\ \)

Với mỗi dãy \(L_{i}\): hãy tìm dãy dài nhất \(L_{i},L_{h_{1}},\ldots,L_{h_{k}}\) thỏa mãn \(L_{i} \subset L_{h_{1}} \subset \ldots \subset L_{h_{k}}\); trong đó \(L_{i},L_{h_{1}},\ldots,L_{h_{k}}\) là các đoạn thẳng trong \(n\) đoạn thẳng đã cho.

Dữ liệu vào:

+ Dòng đầu tiên chứa số nguyên dương \(n\).

+ Dòng thứ \(i\) trong \(n\) dòng tiếp theo chứa 2 số nguyên \(A_{i}\)\(T_{i}\), mô tả đoạn \(L_{i}\) có độ dài \(T_{i}\) bắt đầu từ vị trí \(A_{i}\).

+ Không tồn tại 2 đoạn thẳng giống nhau.

Kết quả:

+ Gồm \(n\) số, số thứ \(i\) là số lượng đoạn thẳng trong dãy dài nhất \(L_{i},L_{h_{1}},\ldots,L_{h_{k}}\) thỏa mãn \(L_{i} \subset L_{h_{1}} \subset \ldots \subset L_{h_{k}}\), không bao gồm đoạn \(L_{i}\). Hai số kề nhau được phân tách bởi một khoảng trắng.

Ràng buộc:

  • \(1 \leq n \leq 2 \times 10^{5}\).

  • \(1 \leq A_{i},T_{i} \leq 10^{9}\).

Ví dụ:

Input Output
5
2 5
3 3
2 2
4 2
4 1
0 1 1 2 3

Ràng buộc:

  • Có 30% điểm tương ứng với \(n \leq 100\).

  • Có 20% điểm tương ứng với \(100 \leq n \leq 10^{4}\).

  • Có 50% điểm tương ứng với \(10^{4} \leq n \leq 2 \times 10^{5}\).

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. trungnam (6/7)
  2. sythai (5/8)
  3. npk1605 (5/10)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]