Cod sursa(job #2886542)
| Utilizator | Data | 7 aprilie 2022 21:13:18 | |
|---|---|---|---|
| Problema | Deque | Scor | 60 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
int main()
{
long long n, k, s = 0;
fin >> n >> k;
long long A[n], D[n];
for (long long i = 0; i < n; i++)
fin >> A[i];
long long front = 1, back = 0;
for (long long i = 0; i < n; i++)
{
while (back >= front && A[D[back]] >= A[i])
back--;
D[++back] = i;
if (D[front] <= i - k)
front++;
if (i >= k - 1)
s += A[D[front]];
}
fout << s;
return 0;
}
