LZXOR

Xem PDF

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một dãy số nguyên không âm \(a = a_1, a_2, \ldots, a_n\)\(Q\) truy vấn, mỗi truy vấn thuộc một trong hai dạng sau:

  • 0 \(u\) \(v\) \(x\): Gán \(a_i = a_i \wedge x\) \(\forall u \leq i \leq v\), với \(\wedge\) là phép xor, tổng nim, hoặc triệt tiêu

  • 1 \(u\) \(v\): Tính và in ra tổng các \(a_i\) \(\forall u \leq i \leq v\)

Input

  • Dòng đầu chứa \(n\)
  • Dòng tiếp theo chứa \(a_1\) \(a_2\) \(\ldots\) \(a_n\)
  • Dòng tiếp theo chứa số lượng truy vấn: \(Q\)
  • \(Q\) dòng tiếp theo mỗi dòng chứa một truy vấn: \(0\) \(u\) \(v\) \(x\) hoặc \(1\) \(u\) \(v\)

Output

  • Với mỗi truy vấn dạng \(1\) \(u\) \(v\), in ra trên một dòng tổng các số từ vị trí \(u\) đến \(v\) trên dãy \(a\)

Scoring

  • \(1 \leq n, T \leq 10^5\), \(0 \leq a_i \leq 10^5\), \(0 \leq x \leq 10^5\)
  • Có ít nhất 50% số test với \(n, Q \leq 5000\)

Example

Test 1

Input
5
1 2 3 4 5
5
0 1 3 1
0 3 5 2
1 1 5
1 3 3
1 1 2 
Output
16
0
3

Bình luận

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