Pagini recente » Cod sursa (job #1611300) | Cod sursa (job #604023) | Cod sursa (job #2416825) | Cod sursa (job #429982) | Cod sursa (job #2525437)
#include <bits/stdc++.h>
using namespace std;
int v[5000002],n,k,i;
long long r;
deque<pair<int,int> >dq;
int main()
{
FILE* si=fopen("deque.in","r");
FILE* so=fopen("deque.out","w");
fscanf(si,"%d%d",&n,&k);
for(i=1; i<=n; i++)
{
fscanf(si,"%d",&v[i]);
}
for(i=1; i<=k; i++)
{
while(!dq.empty() && v[i]<=dq.back().first)
dq.pop_back();
dq.push_back({v[i],i});
}
r=dq.front().first;
for(i=k+1; i<=n; i++)
{
while(!dq.empty() && v[i]<=dq.back().first)
dq.pop_back();
dq.push_back({v[i],i});
if(dq.front().second<i-k+1)
{
dq.pop_front();
}
r+=dq.front().first;
}
fprintf(so,"%lld",r);
fclose(si);
fclose(so);
return 0;
}