Pagini recente » Cod sursa (job #1969173) | Arhiva Educationala | Arhiva Educationala | Borderou de evaluare (job #2861130) | Cod sursa (job #2889537)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
long long numere[5000000], pozitii[5000000];
int nrElemente, k;
int main() {
long long index, numar, suma = 0, stangaNumere, dreaptaNumere;
fin >> nrElemente >> k;
stangaNumere = 0;
dreaptaNumere = -1;
for (index = 0; index < nrElemente; index += 1) {
fin >> numar;
while (stangaNumere <= dreaptaNumere and numar <= numere[dreaptaNumere]) {
dreaptaNumere -= 1;
}
numere[++dreaptaNumere] = numar;
pozitii[dreaptaNumere] = index;
while (stangaNumere <= dreaptaNumere and pozitii[stangaNumere] <= index - k) {
stangaNumere += 1;
}
if (index >= k - 1) {
suma += numere[stangaNumere];
}
}
fout << suma;
return 0;
}