Cod sursa(job #2720475)
| Utilizator | Data | 10 martie 2021 21:21:20 | |
|---|---|---|---|
| Problema | Deque | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <bits/stdc++.h>
#define maxn 5000010
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int sir[maxn];
int main() {
int n, k, suma = 0;
deque <int> coada;
fin >> n >> k;
for(int i = 1; i <= n; ++i)
fin >> sir[i];
coada.push_back(1);
for(int i = 2; i <= n; ++i) {
while(sir[i] <= sir[coada.back()])
coada.pop_back();
coada.push_back(i);
if(coada.front() == i - k)
coada.pop_front();
if(i >= k)
suma += sir[coada.front()];
}
fout << suma;
}