Pagini recente » Cod sursa (job #437531) | Cod sursa (job #117037) | Cod sursa (job #2277130) | Cod sursa (job #862344) | Cod sursa (job #2887944)
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main() {
ifstream fileIn("deque.in");
ofstream fileOut("deque.out");
int n, k, i, a;
long long suma=0;
vector <int> vectr;
vector <int> dQ;
fileIn >> n >> k;
for(i=0; i < k-1; i++) {
fileIn >> a;
vectr.push_back(a);
while(!dQ.empty() && a <= vectr[dQ.back()]) {
dQ.pop_back();
}
dQ.push_back(i);
if (!dQ.empty() && dQ.front() == i-k) {
dQ.erase(dQ.begin());
}
}
for(i=k-1; i < n; i++) {
fileIn >> a;
vectr.push_back(a);
while(!dQ.empty() && a <= vectr[dQ.back()]) {
dQ.pop_back();
}
dQ.push_back(i);
if (!dQ.empty() && dQ.front() == i-k) {
dQ.erase(dQ.begin());
}
suma += vectr[dQ.front()];
}
fileOut << suma;
return 0;
}