Pagini recente » Cod sursa (job #2677210) | Cod sursa (job #1925169) | Cod sursa (job #2228713) | Cod sursa (job #134925) | Cod sursa (job #1746440)
# include <iostream>
# include <fstream>
# include <deque>
using namespace std;
deque<int> deck;
int vector[50000001];
int rezultat(int n, int k){
int sum = 0;
for(int i = 1; i <= n; i++){
while(!deck.empty() && vector[i] <= vector[deck.back()])
deck.pop_back();
deck.push_back(i);
if(deck.front() == i - k)
deck.pop_front();
if(i >= k)
sum += vector[deck.front()];
}
return sum;
}
int main(){
int n, k;
ifstream f("deque.in");
ofstream g("deque.out");
f >> n >> k;
for(int i = 1; i <= n; i++)
f >> vector[i];
f.close();
g << rezultat(n, k);
g.close();
return 0;
}