Cod sursa(job #3127312)
| Utilizator | Data | 7 mai 2023 14:32:16 | |
|---|---|---|---|
| Problema | Deque | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <iostream>
#include <deque>
using namespace std;
const int MAXN = 5000005;
int A[MAXN];
int main() {
int N, K;
cin >> N >> K;
for (int i = 0; i < N; i++) {
cin >> A[i];
}
deque<int> Q;
long long ans = 0;
for (int i = 0; i < N; i++) {
while (!Q.empty() && A[Q.back()] >= A[i]) {
Q.pop_back();
}
Q.push_back(i);
while (!Q.empty() && Q.front() <= i - K) {
Q.pop_front();
}
if (i >= K - 1) {
ans += A[Q.front()];
}
}
cout << ans << endl;
return 0;
}
