XOR Problem V

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2500 Thời gian: 0.1s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho một dãy nhị phân vô hạn \(a₀, a₁, a₂, …\) Dãy này được sinh bởi một công thức truy hồi tuyến tính trên \(GF(2)\):

\(aᵢ = c₁aᵢ₋₁ ⊕ c₂aᵢ₋₂ ⊕ … ⊕ cₖaᵢ₋ₖ\)

Bạn được cung cấp \(2K\) phần tử đầu tiên và \(Q\) truy vấn. Với mỗi truy vấn \(Mᵢ\), hãy in ra \(aₘᵢ\).

Input

  • Dòng đầu \(K, Q\).
  • Dòng thứ hai xâu nhị phân \(A\) có độ dài đúng \(2K\).
  • \(Q\) dòng tiếp theo, mỗi dòng chứa một số nguyên \(Mᵢ\).

Output

  • In ra \(Q\) dòng, dòng thứ \(i\) là giá trị \(aₘᵢ\).

Constraints

  • \(1 ≤ K,\ Q ≤ 5000,\ 0 ≤ Mᵢ < 10¹⁸\)

Example

Test 1

Input
2 4
0110
0
1
10
11
Output
0
1
1
1

Test 2

Input
3 5
101101
2
7
100
999
1000000000000
Output
1
0
0
1
0

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.