Cod sursa(job #2728040)
Utilizator | Data | 22 martie 2021 18:57:33 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n, k, v[5000000], deque[5000000], L = 0, R = -1;
long long s;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main()
{
fin >> n >> k;
for (int i = 0; i < n; i++)
fin >> v[i];
for (int i = 0; i < n; i++)
{
while (L <= R && v[deque[R]] >= v[i])
R--;
R++;
deque[R] = i;
if (i >= k - 1)
{
if (deque[L] <= i - k)
L++;
s += v[deque[L]];
}
}
fout << s;
}