Cod sursa(job #2726438)
| Utilizator | Data | 20 martie 2021 22:29:18 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
int main()
{
std::ifstream f("deque.in");
int N, K;
long long Suma = 0;
f >> N >> K;
int deq[N], Poz[N];
int Back = -1, Front = 0;
for(int i = 0; i < N; ++i)
{
f >> deq[i];
while(Front <= Back && deq[i] <= deq[Back])
--Back;
deq[++Back] = deq[i];
Poz[Back] = i;
if(Poz[Front] == i - K)
++Front;
if(i + 1 >= K)
Suma += deq[Front];
}
std::ofstream g("deque.out");
g << Suma;
return 0;
}
