Pagini recente » Cod sursa (job #2928899) | Cod sursa (job #1311838) | Cod sursa (job #2537538) | Istoria paginii runda/wettbewerbssimulation.cristi0 | Cod sursa (job #812202)
Cod sursa(job #812202)
#include <cstdio>
#include <cstdlib>
int v[5000001],deque[5000000];
int n,K;
int min,max,val;
long long s = 0;
void afisare(int *deque,int min,int max)
{
printf("\n");
for ( int i = min; i <= max; i++ )
printf("%2d ",deque[i]);
printf("\n");
}
int main()
{
FILE *f,*g;
f = fopen("deque.in", "r");
g = fopen("deque.out", "w");
fscanf(f,"%d %d",&n,&K);
for (int i = 1; i <= n; i++)
fscanf(f,"%d", &v[i]);
min = 1;
max = 0;
for ( int i = 1; i <= n; i++ )
{
val = v[i];
while ( val <= v[deque[max]] && min <= max ) max--;
deque[++max] = i;
if ( deque[min] == i-K ) min++;
if ( i >= K ) s += v[deque[min]];
}
fprintf(g,"%lld",s);
return 0;
}