Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #1306064)
#include<stdio.h>
#include<iostream>
#include<fstream>
#include<deque>
#include<algorithm>
#include<limits.h>
using namespace std;
deque<int> v;
deque<int> p;
int main()
{
ifstream si;
si.open("deque.in");
ofstream so;
so.open("deque.out");
int n,k;
si>>n>>k;
int a,i;
for(i=0;i<k;++i)
{
si>>a;
while(v.size()>0&&v.back()>a)
{
v.pop_back();
p.pop_back();
}
v.push_back(a);
p.push_back(i);
}
int s;
s=v.front();
for(;i<n;++i)
{
si>>a;
while(v.size()>0&&v.back()>a)
{
v.pop_back();
p.pop_back();
}
v.push_back(a);
p.push_back(i);
if(p.front()==i-k)
{
p.pop_front();
v.pop_front();
}
s=s+v.front();
}
so<<s<<'\n';
}