Pagini recente » Cod sursa (job #758360) | Monitorul de evaluare | Cod sursa (job #1888502) | Cod sursa (job #2513740) | Cod sursa (job #2350178)
#include <cstdio>
#include <deque>
using namespace std;
deque <pair<long long,long long> > v;
int main()
{
long long n, i, t=0, a, k;
FILE *fin, *fout;
fin=fopen("deque.in" ,"r");
fout=fopen("deque.out" ,"w");
fscanf(fin, "%lld%lld" ,&n ,&k);
for (i=0;i<k;i++) {
fscanf(fin, "%lld" ,&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, "%lld" ,&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));
// fprlong longf(fout, "%d " ,t);
t+=v.back().first;
//fprlong longf(fout, "%d\n" ,t);
}
fprintf(fout, "%lld" ,t);
return 0;
}