canuc80k6000·1/15

Phổ Thống Trị Ba Chiều

Nộp bài trên LQDOJ

Bài 60 · CDQ Divide and Conquer

Description

Có phần tử, phần tử thứ mang ba thuộc tính nguyên . Với mỗi , gọi là số chỉ số thỏa đồng thời và . Hãy lập phân bố của các giá trị .

Input

  • Dòng đầu chứa và .
  • dòng tiếp theo chứa ba số nguyên .

Output

  • In dòng; dòng thứ là số phần tử có đúng phần tử khác không lớn hơn nó trên cả ba tọa độ.

Constraints

  • .
  • .

Scoring

  • Subtask ( số điểm): dữ liệu nhỏ theo giới hạn được công bố trong hệ thống chấm.
  • Subtask ( 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ử 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ả , còn có kết quả . Vì thế các tần suất lần lượt là .

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.