Pagini recente » Cod sursa (job #2046218) | Cod sursa (job #1387595) | Cod sursa (job #2796664) | Cod sursa (job #481431) | Cod sursa (job #2078883)
#include <bits/stdc++.h>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int N, K, a[5000003];
long long sum;
deque<int> q;
void afis(deque<int> q, int SUM) {
int n;
for (n = 0; n < 10; n++)
cout<< "\n\n\n\n\n\n\n\n\n\n";
deque<int> st(q);
while(!st.empty())
cout << a[st.front()] << " ", st.pop_front();
cout << "\n\nSUM=" << sum;
}
int main()
{
f >> N >> K;
for(int i = 1; i < K; i++)
f >> a[i], q.push_back(i);
for(int i = K; i <= N; i++) {
f >> a[i];
while(!q.empty() && a[q.back()] > a[i])
q.pop_back();//, afis(q, sum);
q.push_back(i);//, afis(q, sum);
if(q.front() <= i - K)
q.pop_front();
//afis(q, sum);
sum += a[q.front()];
//afis(q, sum);
}
g << sum << "\n";
return 0;
}