Pagini recente » Cod sursa (job #2477194) | Cod sursa (job #68807) | Cod sursa (job #363204) | Cod sursa (job #2691600) | Cod sursa (job #3127191)
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
long calculate_min(deque<long> deque){
long min = deque.at(0);
for(auto p = deque.begin(); p != deque.end(); ++p){
if(*p < min){min = *p;}
}
return min;
}
int main(){
deque<long> deque;
int N,K; // N <= 5.000.000, 1 <= K <= N
long sum = 0;
ifstream fin("deque.in");
ofstream fout("deque.out");
fin>>N>>K;
long x;
//K = elements in deque, N = total numbers
for(int i = 0; i < K; i++){ // first , we put numbers in deque
fin>>x;
deque.push_back(x);
}
//then, for the other numbers N-K, we calculate the min , pop first and push next
for(int i = 0; i < N-K;i++){
long min = calculate_min(deque);
deque.pop_front();
fin>>x;
deque.push_back(x);
sum+=min;
}
long min = calculate_min(deque);
sum+=min;
fout<<sum;
return 0;
}