Cod sursa(job #1249525)
Utilizator | Tudor Coman tudorcoman | Data | 27 octombrie 2014 09:15:44 |
---|---|---|---|
Problema | Deque | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include<cstdio>
using namespace std;
int deque[5000001], a[5000001], front, back, n, k;
long long suma;
void citire()
{
int i;
scanf("%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
citire();
int i;
f=1;
b=0;
for(i=1;i<=n;i++)
{
while(f<=b&&a[i]<=a[deque[b]])b--;
deque[++b]=i;
if(deque[f]==i-k)f++;
if(i>=k)suma+=a[d[front]];
}
printf("%d\n",suma);
return 0;
}