Cod sursa(job #2056893)
| Utilizator | Data | 4 noiembrie 2017 13:40:22 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <bits/stdc++.h>
#define maxn 5000010
using namespace std;
int d[maxn],a[maxn],N,K,i;
long long s=0;
ifstream f("deque.in");
ofstream g("deque.out");
int main()
{
f>>N>>K;
for(i = 1; i <=N; i++)
f>>a[i];
int pr = 0;
int ul = -1;
for( i = 1; i <=N; i++)
{
int x = a[i];
while(pr <=ul && a[d[ul]] >=x) ul--;
d[++ul] = i;
if(d[pr]==i-K) pr++;
if(i>=K) s+=a[d[pr]];
}
g<<s;
return 0;
}
