Cod sursa(job #2885766)
| Utilizator | Data | 6 aprilie 2022 15:50:15 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include<iostream>
#include<fstream>
using namespace std;
int main() {
int x, i = 0, front = 0, back = -1, n, k;
long long s = 0;
ifstream f("deque.in");
ofstream g("deque.out");
f >> n >> k;
int* v = new int[n+1];
int* d = new int[n+1];
while (f >> x)
{
v[i] = x;
while (front <= back and v[i] < v[d[back]])
back--;
back++;
d[back] = i;
if (i - k >= d[front])
front++;
if (i >= k - 1)
s = s + v[d[front]];
i++;
}
g<< s;
return 0;
}