Có n phần tử, phần tử thứ i mang ba thuộc tính nguyên (ai,bi,ci). Với mỗi i, gọi fi là số chỉ số j=i thỏa đồng thời aj≤ai,bj≤bi và cj≤ci. Hãy lập phân bố của các giá trị fi.
Input
Dòng đầu chứa n và k.
n dòng tiếp theo chứa ba số nguyên ai,bi,ci.
Output
In n dòng; dòng thứ d+1 là số phần tử có đúng d phần tử khác không lớn hơn nó trên cả ba tọa độ.
Constraints
1≤n≤105.
1≤ai,bi,ci≤k≤2⋅105.
Scoring
Subtask 1 (50% số điểm): dữ liệu nhỏ theo giới hạn được công bố trong hệ thống chấm.
Subtask 2 (50% số điểm): không có giới hạn bổ sung.
Example
Test 1
Input
5 3
1 1 1
1 1 1
2 2 2
2 1 3
3 3 3
Output
0
2
2
0
1
Giải thích: Hai phần tử (1,1,1) cùng có đúng một phần tử khác không lớn hơn mình; hai phần tử ở giữa cùng có kết quả 2, còn (3,3,3) có kết quả 4. Vì thế các tần suất lần lượt là 0,2,2,0,1.
Lời giải tóm tắt
Mô hình và thuật toán: Sắp xếp và gộp các bộ ba trùng nhau. CDQ theo tọa độ thứ nhất; khi ghép, quét tọa độ thứ hai và dùng Fenwick trên tọa độ thứ ba để cộng số bản sao từ nửa trái sang nửa phải.
Chứng minh tính đúng đắn: Mỗi cặp thuộc hai nhóm khác nhau được xử lý đúng tại nút CDQ thấp nhất tách chúng sang hai nửa. Điều kiện quét và tổng tiền tố Fenwick kiểm tra chính xác hai tọa độ còn lại; phần tử trùng được bù bằng multiplicity trừ một.
Độ phức tạp:O(n log² n) thời gian và O(n+k) bộ nhớ.
Lỗi thường gặp: Một lỗi tự nhiên là dùng bất đẳng thức nghiêm ngặt và bỏ sót các tọa độ bằng nhau.