Toàn mới nhận được phiếu giảm giá cho các cửa hàng bánh kẹo. Có loại kẹo được bày bán ở khu Toàn sống. Có hãng cửa hàng khác nhau được đánh số từ 1 đến , và hãng thứ có mở cửa hàng chi nhánh. Hãng thứ có bán loại kẹo nếu dạng biểu diễn nhị phân của có chứa bit thứ . Toàn muốn mua được đủ một số loại kẹo Toàn thích, và dùng hết đúng phiếu giảm giá. Nhưng mỗi ngày, Toàn tùy hứng thay đổi sở thích ăn kẹo.
Cho truy vấn, truy vấn thứ là các loại kẹo mà Toàn muốn ăn vào ngày thứ , giúp Toàn đếm xem có bao nhiêu cách chọn cửa hàng khác hãng đôi một với nhau, và có thể mua không thiếu các loại kẹo Toàn thích.
Tóm tắt: cho các số nguyên dương .
Cho truy vấn, mỗi truy vấn gồm một số nguyên , tính tổng của tất cả bộ số sao cho , với ∨ là phép OR và ∧ là phép AND.
Yêu cầu: Hãy tính tổng số kẹo của bạn từ vị trí đến vị trí .
Dữ liệu:
- Dòng thứ nhất chứa số
- Dòng thứ hai chứa dãy số ;
- Dòng thứ ba chứa ;
- Dòng thứ 4...𝑞+3: chứa một số nguyên , nếu dạng biểu diễn nhị phân của có chứa bit 𝑖 thì hôm đó Toàn muốn ăn loại kẹo .
Kết quả:
Gồm dòng, mỗi dòng thứ là kết quả truy vấn thứ ~𝑖`.
Ví dụ:
input
Copy
2 2
1 2 3
1
1
output
Copy
11
Ràng buộc:
- Subtask 1: (5%)
- Subtask 2: (10%)
- Subtask 3: (25%)
- Subtask 4: (35%)
- Subtask 5: (25%)
Comments