Submit solution

Points: 100.00 (partial)
Time limit: 1.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type

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ó ~2n-1~ hãng cửa hàng khác nhau được đánh số từ 1 đến ~2n-1~, và hãng thứ ~i~ có mở ~𝑎_i~ cửa hàng chi nhánh. Hãng thứ ~𝑖~ có bán loại kẹo ~𝑗 (1 ≤ 𝑗 ≤ 𝑛)~ 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 ~𝑎_1, 𝑎_2,..., 𝑎_{2n-1} (𝑛 ≤ 20)~. Cho ~𝑞 (𝑞 ≤ 10^5)~ truy vấn, mỗi truy vấn gồm một số nguyên ~𝑥 (0 ≤ 𝑥 ≤ 2n)~, tính tổng ~𝑎_{i1}×𝑎_{i2}×...×𝑎_{ik}~ của tất cả bộ số ~𝑖_1,..., 𝑖_k (𝑖_1 < 𝑖_2 < ...< 𝑖_k)~ sao cho ~(𝑖_1∨𝑖_2∨...∨𝑖_k)∧𝑥 = 𝑥~, 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í ~l~ đến vị trí ~r~.

Dữ liệu:

  • Dòng thứ nhất chứa số ~𝑛, 𝑘 (𝑘 ≤ 3, 𝑛 ≤ 20)~
  • Dòng thứ hai chứa dãy số ~𝑎_1, 𝑎_2,..., 𝑎_{2n-1} (0 ≤ 𝑎_i ≤ 10^9)~;
  • Dòng thứ ba chứa ~𝑞 (𝑞 ≤ 10^5)~;
  • Dòng thứ 4...𝑞+3: chứa một số nguyên ~𝑥 (0 ≤ 𝑥 ≤ 2n)~, 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
2 2
1 2 3
1
1
output
11

Ràng buộc:

  • Subtask 1: ~𝑘 = 1,𝑛 ≤ 10~ (5%)
  • Subtask 2: ~𝑘 = 1,𝑛 ≤ 17~ (10%)
  • Subtask 3: ~𝑘 = 1,𝑛 ≤ 20~ (25%)
  • Subtask 4: ~𝑘 = 2,𝑛 ≤ 20~ (35%)
  • Subtask 5: ~𝑘 = 3,𝑛 ≤ 20~ (25%)

Comments

Please read the guidelines before commenting.


There are no comments at the moment.