Cod sursa(job #819500)

Utilizator dica69Alexandru Lincan dica69 Data 19 noiembrie 2012 10:26:01
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <cstdio>

using namespace std;

long p,u,a[5000000],deq[5000000],i,n,k;
long long sum;
int main()
{FILE *f1 = fopen("deque.in","r");
FILE *f2 = fopen("deque.out","w");

fscanf(f1,"%ld%ld",&n,&k);
for (i=1;i<=n;i++) fscanf(f1,"%ld",&a[i]);
p=1;u=0;sum=0;

for (i=1;i<=n;i++)
{while (p<=u && a[i]<=a[deq[u]]) u--;
deq[++u]=i;
if (deq[p]==i-k) p++;

if (i>=k) sum+=a[deq[p]];


}
fprintf(f2,"%lld",sum);
    return 0;
}