Cod sursa(job #3275763)
| Utilizator | Data | 11 februarie 2025 18:45:01 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <deque>
#define fi first
#define se second
using namespace std;
deque<pair<int, int>> q;
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int n, k; cin >> n >> k;
int ans = 0;
for(int i = 1; i <= n; i ++) {
int x; cin >> x;
if(q.size() && q.back().se <= i - k)
q.pop_back();
while(q.size() && q.front().fi >= x)
q.pop_front();
q.push_front({x, i});
if(i >= k)
ans += q.back().fi;
}
cout << ans;
}