Cod sursa(job #2889320)
Utilizator | Data | 12 aprilie 2022 17:00:52 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
int v[5000005], deque[5000005];
int main() {
std::ifstream fin("deque.in");
int n, k, f = 0, b = -1;
/* f-front
* b-back */
fin >> n >> k;
long long S = 0;
int i = 0;
while (!fin.eof())
fin >> v[i++];
for (i = 0; i < n; i++) {
while (v[i] <= v[deque[b]] && f <= b)
b--;
deque[++b] = i;
if (i - k == deque[f])
f++;
if (i + 1 >= k)
S += v[deque[f]];
}
std::ofstream fout("deque.out");
fout << S;
return 0;
}