Cod sursa(job #1387179)
Utilizator | Data | 13 martie 2015 19:53:49 | |
---|---|---|---|
Problema | Deque | Scor | 25 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <bits/stdc++.h>
using namespace std;
#define pos first
#define val second
int n,i,j,k,m,aux,pivot(0),sol(0);
deque < pair < int,int > > Deq;
int main(void)
{
ifstream cin("deque.in");
ofstream cout("deque.out");
cin>>n>>k;
for (i=1;i<=n;++i)
{
cin>>aux;
while(!Deq.empty() && Deq.back().val>aux) Deq.pop_back();
Deq.push_back({i,aux});
if (i>=k)
{
++pivot;
sol+=Deq.front().val;
while(Deq.front().pos<=pivot) Deq.pop_front();
}
}
cout<<sol<<"\n";
return 0;
}