Sliding Windows Sum

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Dãy ~x_1, x_2, \dots, x_n~ được tạo bởi bộ sinh:

  • ~x_1 = x~
  • ~x_i = (a \cdot x_{i-1} + b) \bmod c~ với ~i = 2,3,\dots,n~

Với mỗi cửa sổ liên tiếp độ dài ~k~, ta xét tổng của cửa sổ đó theo thứ tự từ trái sang phải.

Yêu cầu

Tính giá trị:

  • Gọi ~S_i = \sum_{j=i}^{i+k-1} x_j~ với ~i = 1..(n-k+1)~
  • In ra ~S_1 \oplus S_2 \oplus \dots \oplus S_{n-k+1}~

Trong đó ~\oplus~ là phép XOR bit.

Dữ liệu

  • Dòng 1: hai số nguyên ~n~, ~k~ — số phần tử và độ dài cửa sổ.
  • Dòng 2: bốn số nguyên ~x~, ~a~, ~b~, ~c~ — tham số bộ sinh.

Kết quả

  • In ra một số nguyên: XOR của tất cả các tổng cửa sổ.

Ví dụ

Ví dụ 1

Input

8 5
3 7 1 11

Output

12

Giải thích

Ví dụ 1

Dãy sinh ra là ~[3,0,1,8,2,4,7,6]~.

Các cửa sổ độ dài ~5~ có tổng lần lượt: ~14, 15, 22, 27~.

Vì vậy kết quả là ~14 \oplus 15 \oplus 22 \oplus 27 = 12~.

Ràng buộc và chấm điểm

Ràng buộc
  • ~1 \le k \le n \le 10^7~
  • ~0 \le x,a,b \le 10^9~
  • ~1 \le c \le 10^9~

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.