SUMXOR (DHBB23 - CTP, HP)

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: 1600 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho mảng \(a\) gồm \(n\) số tự nhiên \(a_1,a_2,…,a_n\). Có 2 loại thao tác:

  • Tính tổng các phần tử trong đoạn \([l,r]\)
  • Áp dụng phép toán XOR với \(x\) cho trước cho từng phần tử trong đoạn \([l,r]\)

Cho danh sách \(m\) thoa tác thuộc 2 loại trên. Hãy thực hiện tất cả các thao tác đã cho, đối với mỗi thao tác tính tổng, in ra kết quả nhận được.

Input

  • Dòng đầu tiên chứa số nguyên dương \(n\);
  • Dòng thứ hai chứa \(n\) số tự nhiên \(a_1,a_2,…,a_n\);
  • Dòng thứ 3 chứa số nguyên dương \(m\) là số thao tác;
  • \(m\) dòng tiếp theo mô tả m thao tác theo định dạng:
    • \(1\ l\ r\): Tính tổng phần tử trong đoạn \([l,r]\);
    • \(2\ l\ r\ x\): Áp dụng phép toán XOR với \(x\) cho tất cả phần tử trong đoạn \([l,r]\).

Output

  • Ghi ra tổng thu được với thao tác loại 1.

Scoring

  • 60% số điểm tương ứng với 30% số test có \(n,m≤10^3,a_i≤10^6,x≤10^6\)
  • 40% số điểm tương ứng với 30% số test có \(n≤10^5,m≤5.10^4,a_i≤10^6,x≤10^6\)

Example

Test 1

Input
5
4 10 3 13 7
8
1 2 4
2 1 3
3 1 2
4 1 3
3 2 2 5 5
1 1 5
2 1 2 10
1 2 3                 
Output
26
22
034
11
Note

Bình luận

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

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