Pagini recente » Cod sursa (job #1664737) | Cod sursa (job #1752806) | Cod sursa (job #2990186) | Cod sursa (job #3241568) | Cod sursa (job #2766670)
#include <fstream>
#include <queue>
using namespace std;
deque <pair <int, int>> q;
ifstream cin("deque.in");
ofstream cout("deque.out");
int main()
{
int n, k, nr, s = 0;
cin >> n >> k >> nr;
q.push_back({nr, 1});
/*
cout << "Deque Pas 1: ";
for(auto elem : q){
cout << elem.first << " ";
}
cout << "\n";
*/
for(int i = 2; i <= n; i ++){
cin >> nr;
while(!q.empty() && q.back().first > nr){
q.pop_back();
}
q.push_back({nr, i});
/*
cout << "Deque Pas " << i << ": ";
for(auto elem : q){
cout << elem.first << " ";
}
cout << "\n";
*/
if(i >= k){
if(i - q.front().second >= k){
q.pop_front();
}
s += q.front().first;
}
/*
cout << "Minimul este: " << q.front().first << "\n";
cout << "Suma este: " << s << "\n";
cout << "\n";
*/
}
cout << s;
return 0;
}