Pagini recente » Cod sursa (job #695791) | Istoria paginii utilizator/barsancarmen | Cod sursa (job #1587250) | Cod sursa (job #2017613) | Cod sursa (job #2349969)
#include <cstdio>
#include <deque>
using namespace std;
deque <pair<int,int> > v;
int main()
{
int n, i, t=0, a, k;
FILE *fin, *fout;
fin=fopen("deque.in" ,"r");
fout=fopen("deque.out" ,"w");
fscanf(fin, "%d%d" ,&n ,&k);
for (i=0;i<k;i++) {
fscanf(fin, "%d" ,&a);
while (v.empty()==0 && a<=v.front().first) {
v.pop_front();
}
v.push_front(make_pair(a, i));
}
t=v.back().first;
for (i=i;i<n;i++) {
fscanf(fin, "%d" ,&a);
if (i-v.back().second>k-1) {
v.pop_back();
}
while (v.empty()==0 && a<=v.front().first) {
v.pop_front();
}
v.push_front(make_pair(a, i));
// fprintf(fout, "%d " ,t);
t+=v.back().first;
//fprintf(fout, "%d\n" ,t);
}
fprintf(fout, "%d" ,t);
return 0;
}