Bài toán khởi động cửa sổ trượt

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

Bạn được cho một mảng gồm n số nguyên. Nhiệm vụ của bạn là tính tổng của mỗi cửa sổ con (window) gồm k phần tử, duyệ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 ra bằng một bộ sinh tự động.


Đầu vào :

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~k~:

    • ~n~ là số phần tử của mảng
    • ~k~ là kích thước của mỗi cửa sổ (window)
  • Dòng thứ hai chứa bốn số nguyên ~x~, ~a~, ~b~, ~c~: là tham số của bộ sinh dữ liệu đầu vào. Mảng đầu vào được sinh theo công thức:

    ~x₁ = x~

    xᵢ = (a * ~x_{i-1}~ + b) mod c với i = 2, 3, ..., n

Đầu ra:

In ra giá trị XOR của tất cả các tổng cửa sổ độ dài k.

Ràng buộc:

~1 ≤ k ≤ n ≤ 10⁷~

~0 ≤ x, a, b ≤ 10⁹~

~1 ≤ c ≤ 10⁹~

Ví dụ :

Input:
8 5
3 7 1 11
Output:
12

Giải thích: Dãy được tạo ra là: [3, 0, 1, 8, 2, 4, 7, 6]

Các cửa sổ độ dài 5 là: [3, 0, 1, 8, 2] → tổng = 14 [0, 1, 8, 2, 4] → tổng = 15 [1, 8, 2, 4, 7] → tổng = 22 [8, 2, 4, 7, 6] → tổng = 27

XOR của các tổng: 14 ⊕ 15 ⊕ 22 ⊕ 27 = 12


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.