[CSES 3221] Sliding Window Minimum

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ớ: 512M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python

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ổ gồm ~k~ phần tử, từ trái sang phải.

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

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên ~n~ và ~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~ và ~c~: các tham số của bộ sinh đầu vào. Đầu vào được tạo như sau:

  • ~x\_1=x~
  • ~x\_i=(ax\_{i-1}+b) \bmod c~ với ~i=2,3,\dots,n~

Kết quả

In ra xor của tất cả giá trị nhỏ nhất của các cửa sổ.

Giới hạn

  • ~1 \le k \le n \le 10^7~
  • ~0 \le x, a, b \le 10^9~
  • ~1 \le c \le 10^9~

Ví dụ

Dữ liệu vào:

8 5
3 7 1 11

Kết quả:

3

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]~ và ~[8,2,4,7,6]~, và giá trị nhỏ nhất của chúng lần lượt là ~0~, ~0~, ~1~ và ~2~. Do đó, đáp án là ~0 \oplus 0 \oplus 1 \oplus 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.