Pagini recente » Cod sursa (job #419254) | Cod sursa (job #2954806) | Cod sursa (job #2522) | Cod sursa (job #3149060) | Cod sursa (job #990661)
Cod sursa(job #990661)
#include <fstream>
#include <deque>
#include <utility>
typedef std::pair<unsigned,int> UUP;
int main(){
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
unsigned n,k;
fin>>n>>k;
long long Sum=0;
std::deque<UUP> sir;
for(unsigned i=1;i<k;++i){
int x; fin>>x;
while(!sir.empty()&&sir.back().second>=x) sir.pop_back();
sir.push_back(UUP(i,x));
}
for(unsigned i=1;i<=n-k+1;++i){
int x; fin>>x;
while(!sir.empty()&&sir.back().second>=x) sir.pop_back();
sir.push_back(UUP(i+k-1,x));
Sum+=sir.front().second;
if(i==sir.front().first) sir.pop_front();
}
fout<<Sum<<'\n';
}