Cerința
Considerăm următorul șir, în care n
este un număr natural nenul: \( f_n = \begin{cases}
0& \text{dacă } n = 1,\\
3& \text{dacă } n = 2,\\
2 \cdot f_{n-1} – f_{n-2} + 2& \text{dacă } n > 2.
\end{cases} \)
Primii termeni ai acestui șir sunt: 0, 3, 8, 15, 24, 35, 48, 63, 80 ....
Se citesc două numere naturale din intervalul [0,10
9
]
, x
și y
, reprezentând valorile a doi termeni aflați pe poziții consecutive în șirul dat (x<y
), și se cere să se afișeze, în ordine strict descrescătoare, separați prin câte un spațiu, toţi termenii șirului mai mici sau egali cu y
.
Date de intrare
Fișierul de intrare pozitiiconsecutive.in
conține pe prima linie numerele x y
.
Date de ieșire
Fișierul de ieșire pozitiiconsecutive.out
va conține pe prima linie în ordine strict descrescătoare, separați prin câte un spațiu, toţi termenii șirului mai mici sau egali cu y
.
Restricții și precizări
0 ≤ x < y ≤ 10
9
- proiectați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei utilizate;
- se recomandă o soluție care să nu folosească tablouri sau alte structuri de date similare.
Exemplu:
pozitiiconsecutive.in
48 63
pozitiiconsecutive.out
63 48 35 24 15 8 3 0