Cod sursa(job #3127634)
| Utilizator | Data | 7 mai 2023 17:12:03 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
#include <vector>
int st = 0, dr = 0, v[5000001], deq[5000001];
std::ifstream in("deque.in");
std::ofstream out("deque.out");
long long int s = 0;
void print()
{
out << s;
}
int main()
{
int n, k;
in >> n >> k;
for (int i = 1; i <= n; i++)
in >> v[i];
for (int i = 1; i <= n; i++)
{
while (v[i] <= v[deq[dr]] && st <= dr)
dr--;
dr++;
deq[dr] = i;
if (k - i < 1 - deq[st])
st++;
if (i >= k)
s += v[deq[st]];
}
print();
return 0;
}