Pagini recente » Cod sursa (job #2467776) | Cod sursa (job #351159) | Cod sursa (job #914338) | Cod sursa (job #1080309) | Cod sursa (job #1358750)
#include<stdio.h>
#include<deque>
int main()
{
FILE *fin,*fout;
fin=fopen("deque.in","r");
fout=fopen("deque.out","w");
int n,k;
fscanf(fin,"%d %d",&n,&k);
int a[n];
long long int s=0;
std::deque<int> de;
std::deque<int> pos;
for(int i=0;i<n;i++)
{
fscanf(fin,"%d",&a[i]);
}
for(int i=0;i<n;i++)
{
if(pos.front()==i-k)
{
s+=de.front();
pos.pop_front();
de.pop_front();
}
while(!de.empty()&&a[i]<=de.back())
{
de.pop_back();
pos.pop_back();
}
de.push_back(a[i]);
pos.push_back(i);
}
s+=de.front();
fprintf(fout,"%d",s);
}