Pagini recente » Monitorul de evaluare | Cod sursa (job #3265612) | Cod sursa (job #234735) | Cod sursa (job #3293027) | Cod sursa (job #2827703)
#include <cstdio>
#include <deque>
using namespace std;
int v[5000005];
deque <int> dq;
int main()
{
FILE *fin=fopen ("deque.in","r");
FILE *fout=fopen ("deque.out","w");
int n,k,i;
long long s=0;
fscanf (fin,"%d%d",&n,&k);
for (i=1;i<=n;i++)
fscanf (fin,"%d",&v[i]);
dq.push_back(1);
for (i=2;i<=n;i++){
while (!dq.empty() && v[i]<=v[dq.back()])
dq.pop_back();
dq.push_back(i);
if (i-dq.front()==k)
dq.pop_front();
if (i>=k){
s+=v[dq.front()];
//printf ("%d ",v[d[p]]);
}
}
fprintf (fout,"%lld",s);
return 0;
}