Cod sursa(job #252806)
Utilizator | Data | 4 februarie 2009 22:16:12 | |
---|---|---|---|
Problema | Deque | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.37 kb |
#include<fstream.h>
#define max 5000000
ifstream fi("deque.in");
ofstream g("deque.out");
long a[max],i,f,b,k,n,d[max];
long long sum;
int main()
{
fi>>n>>k;
for(i=1;i<=n;i++)
fi>>a[i];
f=1;
b=0;
for(i=1;i<=n;i++)
{
while(f<=b && a[i]<=a[d[b]])
b--;
d[++b]=i;
if(d[f]==i-k) f++;
if(i>=k) sum+=a[d[f]];
}
g<<sum;
return 0;
}