Pagini recente » Cod sursa (job #428930) | Cod sursa (job #2202380) | Cod sursa (job #739192) | Cod sursa (job #3267044) | Cod sursa (job #2887980)
#include <fstream>
int main() {
std::ifstream fileIn("deque.in");
std::ofstream fileOut("deque.out");
int n, k, i, first = 0, last =-1;
long long suma=0;
int *vectr = new int[5000010];
int *dQ = new int[5000010];
fileIn >> n >> k;
for(i=0; i < n; i++) {
fileIn >> vectr[i];
while(first <= last && vectr[i] <= vectr[dQ[last]]) {
last --;
}
last ++;
dQ[last] = i;
if (dQ[first] == i-k) {
first ++;
}
suma += (i >= k-1) ? vectr[dQ[first]] : 0;
}
fileOut << suma;
delete [] vectr;
delete [] dQ;
return 0;
}