Pagini recente » Cod sursa (job #1825370) | Cod sursa (job #1047292) | Cod sursa (job #1466911) | Cod sursa (job #2007837) | Cod sursa (job #3309859)
#include <bits/stdc++.h>
int getmin(std::deque<int64_t> x){
int64_t minim=x[0];
for (std::deque<int64_t>::iterator i=x.begin();i<x.end();++i){
int64_t 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<int64_t> list;
int64_t answer=0;
int64_t n,k;
fin>>n>>k;
//init
for (int i=1;i<=k;++i){
int temp;
fin>>temp;
list.push_back(temp);
}
int64_t reminder=getmin(list);
answer+=reminder;
//after first init
for (int i=k+1;i<=n;++i){
int64_t 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;
}