Cod sursa(job #2079074)
| Utilizator | Data | 30 noiembrie 2017 15:22:07 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int N, K, u = -1, p, a[5000003], q[5000003];
long long sum;
int main()
{
f >> N >> K;
for(int i = 1; i <= N; i++) f >> a[i];
for(int i = 1; i <= N; i++) {
if(p <= u && q[p] <= i - K) p++; //, afis(q, sum);
while(p <= u)
if(a[q[u]] >= a[i]) u--;//, afis(q, sum);
else break;
q[++u] = i; //, afis(q, sum);
if(i >= K) sum += a[q[p]]; //, afis(q, sum);
}
g << sum << "\n";
return 0;
}
