Cod sursa(job #1744763)
| Utilizator | Data | 20 august 2016 14:08:37 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<stdio.h>
using namespace std;
FILE *f1=fopen("deque.in","r");
FILE *f2=fopen("deque.out","w");
int n,k,p,u,coada[5000001],i,v[5000001];
long long sum;
int main(){
fscanf(f1,"%d%d",&n,&k);
for (i=1;i<=n;i++)
fscanf(f1,"%d",&v[i]);
p=1;u=0;
for (i=1;i<=n;i++){
while (p<=u && v[coada[u]]>v[i]) u--;
u++;
coada[u]=i;
if (coada[p]<=i-k) p++;
if (i>=k) sum=sum+v[coada[p]];
}
fprintf(f2,"%lld",sum);
fclose(f1);
fclose(f2);
return 0;
}
