From 96254947699986c59f0dc63d69fd4b76bd3ed43e Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 6 Jul 2026 19:08:08 +0200 Subject: Initial commit --- .../sliding_window_minimum_3221.cpp | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 11_sliding_window_problems/sliding_window_minimum_3221.cpp (limited to '11_sliding_window_problems/sliding_window_minimum_3221.cpp') diff --git a/11_sliding_window_problems/sliding_window_minimum_3221.cpp b/11_sliding_window_problems/sliding_window_minimum_3221.cpp new file mode 100644 index 0000000..ef7485a --- /dev/null +++ b/11_sliding_window_problems/sliding_window_minimum_3221.cpp @@ -0,0 +1,29 @@ +#include +#include +#include +#include + +int main() { + long long n, k, x, a, b, c; + std::cin >> n >> k >> x >> a >> b >> c; + + std::vector v(k); + std::deque q; + for (long long i = 0; i < k; i++) { + v[i] = x; + while (!q.empty() && q.back() >= x) q.pop_back(); + q.push_back(x); + x = (a*x + b) % c; + } + + long long sol = q.front(); + for (long long i = 0; i < n-k; i++) { + if (q.front() == v[i%k]) q.pop_front(); + v[i%k] = (a*v[(i-1+k)%k] + b) % c; + while (!q.empty() && q.back() >= v[i%k]) q.pop_back(); + q.push_back(v[i%k]); + sol ^= q.front(); + } + + std::cout << sol << "\n"; +} -- cgit v1.3