Pagini recente » Cod sursa (job #2186629) | Cod sursa (job #2860874) | Istoria paginii runda/runda1 | Cod sursa (job #2063683) | Cod sursa (job #3128223)
#include <fstream>
#include <iostream>
#include <deque>
#include <vector>
std::ifstream in;
std::ofstream out;
int deq[5000000], v[5000000];
int main() {
long long k, n, sum = 0, f, b;
in.open("deque.in");
in>>n>>k;
f = 0;
b = 0;
for(int i = 0; i < n; i++){
in>>v[i];
while(v[deq[b]] >= v[i] and b >= f)
b--;
b++;
deq[b] = i;
if(i - deq[f] >= k)
f++;
if(i >= k-1)
sum += v[deq[f]], std::cout<<v[deq[f]]<<' ';
}
in.close();
out.open("deque.out");
out<<sum;
out.close();
return 0;
}