Cod sursa(job #2670319)
| Utilizator | Data | 9 noiembrie 2020 17:56:27 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <cstdio>
using namespace std;
FILE *fin=fopen("deque.in","r");
FILE *fout=fopen("deque.out","w");
int coada[5000001],v[5000001];
int main()
{
int n,k,inc,sf,i;
long long suma=0;
fscanf(fin,"%d%d%d",&n,&k,&v[1]);
inc=1;
sf=1;
coada[1]=1;
for(i=2;i<=n;i++)
{
fscanf(fin,"%d",&v[i]);
while(v[i]<v[coada[sf]]&&sf>=inc)
sf--;
sf++;
coada[sf]=i;
if(coada[inc]<i-k+1)
inc++;
if(i>=k)
suma+=v[coada[inc]];
}
fprintf(fout,"%lld",suma);
return 0;
}
