Problem ID:
rects
Points:
4 (partial)
Time limit:
2.0s
Memory limit:
1G
Input:
stdin
Output:
stdout
Authors:
Problem types
Allowed languages
C, C++, Golang, Java, Pascal, Perl, Python, Rust
Hình chữ nhật ~A~ chứa hình chữ nhật ~B~ khi và chỉ khi không tồn tại điểm nào thuộc ~B~ mà không thuộc ~A~ (tính cả các điểm thuộc biên hình chữ nhật).
Cho ~n~ hình chữ nhật, hình chữ nhật ~i~ có điểm trái dưới là ~(l_i,0)~ và điểm phải trên là ~(r_i,h_i)~. Một cách chọn ~k~ hình ~1 \leq i_1<i_2<\dots<i_k \leq n~ là hợp lệ nếu tồn tại một cách sắp xếp các hình chữ nhật đã chọn sao cho hình sau chứa hình trước. Cụ thể hơn là tồn tại một hoán vị ~p_1,p_2,\ldots,p_k~ sao cho hình chữ nhật ~i_{p_2}~ chứa hình chữ nhật ~i_{p_2}~, hình chữ nhật ~i_{p_3}~ chứa hình chữ nhật ~i_{p_2},\ldots~</p>
Tìm cách chọn hợp lệ có nhiều hình chữ nhật nhất từ ~n~ hình đã cho.
Input
- Dòng đầu tiên gồm số nguyên dương ~n (n \leq 10^5)~, là số hình chữ nhật.
- ~n~ dòng đầu tiên, mỗi dòng gồm ba số nguyên không âm ~l_i, r_i, h_i \leq 10^9~ mô tả hình chữ nhật thứ ~i~. Dữ liệu đảm bảo với mỗi hình chữ nhật đều tồn tại ít nhất một điểm thuộc nó.
Output
- Gồm một số nguyên duy nhất là số hình chữ nhật chọn được nhiều nhất.
Scoring
- Subtask 1 (~20\%~ số điểm): ~n \leq 10~.
- Subtask 2 (~20\%~ số điểm): ~n \leq 10^3~.
- Subtask 3 (~10\%~ số điểm): ~l_1 > l_2 > \ldots > l_n~ và ~r_1 < r_2 < \ldots < r_n ~.
- Subtask 4 (~20\%~ số điểm): ~h_1=h_2=\ldots=h_n=0~.
- Subtask 5 (~30\%~ số điểm): Không ràng buộc gì thêm.
Sample Input
5
2 5 3
2 4 3
3 4 2
4 4 5
4 4 4
Sample Output
3
Note
Chọn hình chữ nhật ~1, 2, 3~.
Comments