Cửa sổ bé nhấ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 giá trị nhỏ nhất 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 giá trị nhỏ nhất trong từng cửa sổ độ dài k.

Ràng buộc:

~1 ≤ k ≤ n ≤ 10^7~

~0 ≤ x, a, b ≤ 10^9~

~1 ≤ c ≤ 10^9~

Ví dụ :

Input:
8 5
3 7 1 11
Output:
3

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] → min = 0 [0, 1, 8, 2, 4] → min = 0 [1, 8, 2, 4, 7] → min = 1 [8, 2, 4, 7, 6] → min = 2

XOR của các giá trị nhỏ nhất: 0 ⊕ 0 ⊕ 1 ⊕ 2 = 3


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.