Cod sursa(job #2036094)
| Utilizator | Data | 10 octombrie 2017 11:58:33 | |
|---|---|---|---|
| Problema | Deque | Scor | 10 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <stdio.h>
#include <stdlib.h>
int v[5000000][2];
int main()
{
int n,k,q=2000000000,poz,first=0,s=0,i;
FILE*fi,*fo;
fi=fopen("deque.in","r");
fo=fopen("deque.out","w");
fscanf(fi,"%d%d",&n,&k);
for(i=0; i<n; i++)
{
fscanf(fi,"%d",&q);
if(i==0)
poz=0;
else
{
while(v[poz-1][0]>=q)
poz--;
}
v[poz][0]=q;
v[poz][1]=i;
poz++;
if(i-v[first][1]==k)
first++;
if(i+1>=k)
s+=v[first][0];
}
fprintf(fo,"%d",s);
fclose(fi);
fclose(fo);
return 0;
}
