Pagini recente » Cod sursa (job #3040715) | Cod sursa (job #2941882) | Cod sursa (job #2318007) | Cod sursa (job #2639891) | Cod sursa (job #1147208)
#include<iostream>
#include <fstream>
#include <vector>
#include <list>
#define mp make_pair
#define nr first
#define pos second
using namespace std;
int n, k, x, c=0, minim=0;
long long int s=0;
list<pair<int, int> > l;
int main(){
ifstream f("deque.in");
f>>n>>k;
c=0;
while(c<k)
{
f>>x;
c++;
while(l.size() && x<(--l.end())->nr)
l.pop_back();
l.push_back(mp(x, c));
}
while(f>>x){
c++;
s+=l.begin()->nr;
while(l.size() && x<(--l.end())->nr)
l.pop_back();
l.push_back(mp(x, c));
while(l.size() && l.begin()->pos<=c-k)
l.pop_front();
}
s+=l.begin()->nr;
//cout<<s;
ofstream g("deque.out");
g<<s;
return 0;
}