Pagini recente » Cod sursa (job #3306688) | Monitorul de evaluare | Cod sursa (job #2103388) | Cod sursa (job #3334507) | Cod sursa (job #3309857)
#include <bits/stdc++.h>
int getmin(std::deque<int> x){
int minim=x[0];
for (std::deque<int>::iterator i=x.begin();i<x.end();++i){
int nr=*i;
minim=std::min(minim,nr);
}
return minim;
}
int main(){
//file open
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
std::deque<int> list;
int64_t answer=0;
int n,k;
fin>>n>>k;
//init
for (int i=1;i<=k;++i){
int temp;
fin>>temp;
list.push_back(temp);
}
int reminder=getmin(list);
answer+=reminder;
//after first init
for (int i=k+1;i<=n;++i){
int temp;
fin>>temp;
if (reminder==list.front())
{
list.pop_front();
list.push_back(temp);
reminder=getmin(list);
answer+=reminder;
} else {
list.pop_front();
list.push_back(temp);
reminder=std::min(temp,reminder);
answer+=reminder;
}
}
fin.close();
fout<<answer;
return 0;
}