Một khối lập phương N×N×N dùng tọa độ từ 0 đến N−1 để ghi số UFO tại mỗi ô. Ban đầu mọi ô bằng 0; các lệnh cộng tại một ô hoặc hỏi tổng trong một hộp chữ nhật đóng.
Input
Dòng đầu chứa N.
Tiếp theo là các lệnh 1xyzK,2x1y1z1x2y2z2, hoặc lệnh kết thúc 3.
Output
Với mỗi lệnh loại 2, in tổng UFO trong hộp trên một dòng.
Constraints
1≤N≤128.
Có không quá 105+2 lệnh.
−2⋅104≤K≤2⋅104; sau cập nhật, số UFO tại mọi ô không âm.
Mọi tọa độ thuộc [0,N−1], các cận dưới không vượt cận trên.
Scoring
Subtask 1 (50% số điểm): N≤24 và có không quá 2000 lệnh.
Subtask 2 (50% số điểm): Không có giới hạn bổ sung.
Giải thích: Hộp đầu chứa cả hai ô đã cập nhật nên có 4+3=7 UFO. Sau khi bớt một UFO ở gốc, riêng ô (0,0,0) còn 3.
Lời giải tóm tắt
Ý tưởng: Dịch mỗi tọa độ lên 1. Cập nhật dùng ba vòng tăng lowbit. Prefix P(x,y,z) dùng ba vòng giảm. Tổng hộp dùng inclusion-exclusion trên 8 lựa chọn lấy cận trên hoặc cận dưới-1; dấu phụ thuộc số cận dưới được chọn.
Chứng minh: Theo từng trục, Fenwick phân hoạch prefix thành các đoạn rời nhau; tích của ba phân hoạch là phân hoạch hộp prefix. Inclusion-exclusion ba tập loại đúng các phần nằm trước từng cận dưới, nên mỗi ô trong hộp được giữ một lần.
Độ phức tạp: Mỗi lệnh O(log³N); nhớ O(N³).
Lưu ý cài đặt: Sai dấu 8 hạng; quên dịch 0-based; dùng chỉ số phẳng không đủ rộng.