Cod sursa(job #2259879)
| Utilizator | Data | 13 octombrie 2018 21:21:13 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include<stdio.h>
using namespace std;
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int in=1,sf=0,v[5000002],n,k,deq[5000002],i;long sum=0;
scanf("%d %d ",&n,&k);
for(i=1;i<=n;i++)
scanf("%d ",&v[i]);
for(i=1;i<=n;i++)
{
while(in<=sf&&v[i]<=v[deq[sf]])
--sf;
deq[++sf]=i;
if(deq[in]==i-k)
++in;
if(i>=k)
sum+=v[deq[in]];
}
printf("%d", sum);
}
