Pagini recente » Cod sursa (job #3285864) | nave-prea-usor | Cod sursa (job #2493302) | Diferente pentru info-oltenia-2018/individual/10 intre reviziile 2 si 5 | Cod sursa (job #2106880)
#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
#include <climits>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
struct elem
{
long long n, pos;
elem(long long nr, long long position)
:n(nr), pos(position){}
};
deque<elem> d;
int main()
{
long long N, K, i, x, res=0;
f>>N>>K;
for(i=0;i<N;i++)
{
f>>x;
while(d.size()&&d.front().pos<i-K+1)d.pop_front();
while(d.size()&&d.back().n>x)d.pop_back();
d.push_back(elem(x, i));
if(i>=K-1)res+=d.front().n;
}
g<<res;
f.close();
g.close();
return 0;
}
/**f>>a>>b;
i=min(a, b);
while(f>>c)
{
i=min(i, c);
res+=i;
a=b;
b=c;
i=min(a, b);
}
g<<res;*/