Pagini recente » Cod sursa (job #3256288) | Cod sursa (job #2639892) | Cod sursa (job #2573447) | Cod sursa (job #3238692) | Cod sursa (job #1496398)
#include<cstdio>
#include<deque>
using namespace std;
int i,n,k,x;
long long s=0;
deque <int> d,p;
FILE *in,*out;
int main ()
{
in=fopen("deque.in","r");
out=fopen("deque.out","w");
fscanf(in,"%d %d",&n,&k);
for(i=1;i<=k;i++)
{
fscanf(in,"%d",&x);
while(d.size()>0 && d.back()>x)
{
d.pop_back();
p.pop_back();
}
d.push_back(x);
p.push_back(i);
}
s+=d.front();
for(i=k+1;i<=n;i++)
{
fscanf(in,"%d",&x);
if(p.front()<=i-k)
{
d.pop_front();
p.pop_front();
}
while(d.size()>0 && d.back()>x)
{
d.pop_back();
p.pop_back();
}
d.push_back(x);
p.push_back(i);
s+=d.front();
}
fprintf(out,"%lld",s);
return 0;
}