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