Pagini recente » Cod sursa (job #298345) | Cod sursa (job #2346189) | Cod sursa (job #673391) | Cod sursa (job #516981) | Cod sursa (job #811073)
Cod sursa(job #811073)
#include<fstream>
#include<deque>
#include<iostream>
using namespace std;
typedef struct { int x,pos; } nr;
deque<nr> q;
void add_q(nr x){
while(!q.empty() && q.back().x>=x.x)
{
// cout<<q.back()<<' ';
q.pop_back();
}
q.push_back(x);
}
int main(){
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,i,k;
nr x;
long long s=0;
fin>>n>>k;
for(i=1;i<=k;++i)
{
fin>>x.x;x.pos=i;
add_q(x);
}
s+=q.front().x;
for( i=k+1;i<=n;++i){
fin>>x.x; x.pos=i;
if(q.front().pos==i-k)
q.pop_front();
add_q(x);
s+=q.front().x;
}
fout<<s;
return 0;
}