Cửa sổ bé nhất
Xem dạng PDFBạ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