Pagini recente » Cod sursa (job #2577171) | Cod sursa (job #2677388) | Cod sursa (job #906893) | Cod sursa (job #2367390) | Cod sursa (job #235601)
Cod sursa(job #235601)
#include <deque>
#include <fstream>
using namespace std;
#define val first
#define poz second
ifstream f("deque.in");
ofstream g("deque.out");
int N,K;
long long sol;
deque< pair<int,int> > Q;
int main(){
int i,x;
f>>N>>K;
for (i=1;i<K;++i)
{
f>>x;
while (!Q.empty() && Q.back().val>=x)
Q.pop_back();
Q.push_back(make_pair(x,i));
}
for (;i<=N;++i)
{
while (!Q.empty() && Q.front().poz<i-K+1)
Q.pop_front();
f>>x;
while (!Q.empty() && Q.back().val>=x)
Q.pop_back();
Q.push_back(make_pair(x,i));
sol+=(long long)Q.front().val;
}
g<<sol;
return 0;
}