CSES - Sliding Window Xor | Xor Cửa Sổ Trượt

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

Bạn được cho một mảng gồm \(n\) số nguyên. Nhiệm vụ của bạn là tính xor theo bit của mỗi cửa sổ gồm \(k\) phần tử, từ trái sang phải.

Trong bài này, dữ liệu đầu vào rất lớn và được tạo bằng một bộ sinh.

Input

Dòng đầu tiên chứa hai số nguyên \(n\)\(k\): số lượng phần tử và kích thước cửa sổ.

Dòng tiếp theo chứa bốn số nguyên \(x\), \(a\), \(b\)\(c\): các tham số của bộ sinh dữ liệu. Dữ liệu đầu vào được sinh như sau:

  • \(x_1=x\)

  • \(x_i=(ax_{i-1}+b) \bmod c\) với \(i=2,3,\dots,n\)

Output

In ra xor của tất cả các xor cửa sổ.

Constraints

  • \(1 \le k \le n \le 10^7\)

  • \(0 \le x, a, b \le 10^9\)

  • \(1 \le c \le 10^9\)

Example

Test 1

Input
8 5
3 7 1 11
Output
0

Giải thích: Mảng đầu vào là \([3,0,1,8,2,4,7,6]\). Các cửa sổ là \([3,0,1,8,2]\), \([0,1,8,2,4]\), \([1,8,2,4,7]\)\([8,2,4,7,6]\), và xor của chúng lần lượt là \(8\), \(15\), \(8\)\(15\). Do đó, đáp án là \(8 \oplus 15 \oplus 8 \oplus 15 = 0\).

Bình luận

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

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