Cod sursa(job #1058933)
| Utilizator | Data | 15 decembrie 2013 23:25:36 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <iostream>
#include <fstream>
using namespace std;
#define maxN 5000005
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,v[maxN],d[maxN];
long long s=0;
int main()
{
int i,p,q;
f>>n; f>>k;
for(i=1; i<=n ;i++)
f>>v[i];
p=1;
q=0;
for(i=1; i<=n ;i++)
{
while( p<=q && v[i]<=v[d[q]] ) q--;
d[++q]=i;
if(d[p]==i-k) p++;
if(i>=k) s+=v[d[p]];
}
g<<s;
return 0;
}
