Pagini recente » Romanian Master in Mathematics and Sciences 2011, Clasament zi 1 | Cod sursa (job #805643) | Cod sursa (job #2525875) | Cod sursa (job #2100356) | Cod sursa (job #1675738)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
const int nmax = 5e6+5;
deque <int> d;
int v[nmax], n, k;
long long sol;
int main() {
ios_base::sync_with_stdio(false);
int i;
fin >> n >> k;
for(i=1; i<=n; i++)
fin >> v[i];
for(i=1; i<=n; i++) {
while(!d.empty() && v[i]<=v[d.back()]) {
d.pop_back();
}
d.push_back(i);
if(d.front()==i-k) d.pop_front();
if(i>=k) sol+=v[d.front()];
}
fout << sol;
fin.close();
fout.close();
return 0;
}