Pagini recente » Cod sursa (job #324792) | Cod sursa (job #1045921) | Cod sursa (job #506673) | Cod sursa (job #2544698) | Cod sursa (job #2813987)
#include <fstream>
#include <iostream>
#include <queue>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
void Add(deque<int> &dq, int x){
while(!dq.empty()&& dq.back() > x)
dq.pop_back();
dq.push_back(x);
}
int main(){
deque<int> dq, nums;
int N, K, i, j, x;
long long sum = 0;
f >> N >> K;
for (i = 1; i <= K; i++){
f >> x;
nums.push_back(x);
Add(dq, x);
}
sum += dq.front();
for (i = K + 1; i <= N; i++){
cout << dq.front() << " ";
if (dq.front() == nums.front())
dq.pop_front();
f >> x;
Add(dq, x);
nums.push_back(x);
nums.pop_front();
sum += dq.front();
}
g << sum;
return 0;
}