Pagini recente » Cod sursa (job #2977109) | Cod sursa (job #2207765) | Cod sursa (job #914453) | Cod sursa (job #68373) | Cod sursa (job #2766457)
#include <fstream>
#include <deque>
using namespace std;
deque <int> d;
ifstream cin("deque.in");
ofstream cout("deque.out");
int main()
{
int n, k, nr, s = 0, minn;
cin >> n >> k;
for(int i = 1; i <= k; i ++){
cin >> nr;
d.push_back(nr);
}
minn = 10000005;
if(d.size() == k){
for(auto elem : d){
if(minn > elem){
minn = elem;
}
}
}
if(minn != 10000005){
s += minn;
}
for(int i = k + 1; i <= n; i ++){
cin >> nr;
d.push_back(nr);
while(d[0] > d[1] && i < n){
minn = 10000005;
if(d.size() == k){
for(auto elem : d){
if(minn > elem){
minn = elem;
}
}
}
if(minn != 10000005){
s += minn;
}
d.pop_front();
cin >> nr;
d.push_back(nr);
i ++;
}
d.pop_front();
for(auto elem : d){
if(elem < d.front()){
while(d.front() > elem){
minn = 10000005;
if(d.size() == k){
for(auto elem : d){
if(minn > elem){
minn = elem;
}
}
}
if(minn != 10000005){
s += minn;
}
d.pop_front();
if(i < n){
cin >> nr;
d.push_back(nr);
i ++;
}
}
}
}
minn = 10000005;
if(d.size() == k){
for(auto elem : d){
if(minn > elem){
minn = elem;
}
}
}
if(minn != 10000005){
s += minn;
}
}
cout << s;
return 0;
}