Cod sursa(job #979832)
| Utilizator | Data | 2 august 2013 21:42:20 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <cstdio>
int a[5100000],n,i,p=1,k,u,d[5100000];
long long e;
using namespace std;
int main(){
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%ld%ld",&n,&k);
for (i=1;i<=n;i++)
scanf("%ld",&a[i]);
for (i=1;i<=n;i++)
{
while (p<=u && a[i]<=a[d[u]])
u--;
d[++u]=i;
if (d[p]==i-k)
p++;
if (i>=k)
e+=a[d[p]];
}
printf("%lld",e);
return 0;
}