Maria este pasionată de matematică. Ea este interesată în special elementele şirului Fibonacci şi vrea să studieze proprietăţile elementelor acestui şir. De curând a scris elementele Fibonacci: 1
, 1
, 2
, 3
, 5
, 8
, 13
, … şi a observat că un element, numărul 5
, poate fi scris ca sumă de alte două numere Fibonacci ridicate la pătrat, 5=1
2
+2
2
, iar alt număr Fibonacci, numărul 144
, poate fi scris ca diferenţă a altor două numere Fibonacci ridicate la pătrat, 144=13
2
-5
2
.
Maria a fost încântată de rezultatele pe care le-a obţinut şi ar dori să mai găsească şi alte elemente ale şirului care se pot scrie ca sumă sau ca diferenţă de alte două numere Fibonacci ridicate la pătrat.
Cerința
Ajutaţi-o pe Maria, să decidă despre un element Fibonacci oarecare dacă se poate scrie ca sumă sau diferenţă de două numere Fibonacci distincte ridicate la pătrat. Datorită valorilor mari ale numerelor Fibonacci se cere restul împărţirii lor la 46337
.
Date de intrare
Fişierul de intrare fibo.in
conţine un singur număr natural n
, ce reprezintă numărul de ordine al celui de al n
-lea număr Fibonacci (3<n<25000
).
Date de ieșire
În cazul în care problema are soluţie, fişierul fibo.out
va conţine 5
rânduri:
- prima linie a fişierului va conţine valoarea
1
sau0
, după cum cel de aln
-lea număr Fibonacci poate fi scris ca sumă, respectiv ca diferenţă a altor două numere Fibonacci ridicate la pătrat. - a doua linie a fişierului de ieşire va conţine două numere naturale
i
şij
(0<i<j
) separate printr-un spaţiu, reprezentând numerele de ordine a celor două elemente Fibonacci cerute în enunţ (f
n
=f
j
2
±f
i
2
). - a treia linie a fişierului de ieşire va conţine restul împărţirii celui de al
i
-lea număr Fibonacci la46337
, - a patra linie a fişierului de ieşire va conţine restul împărţirii celui de al
j
-lea număr Fibonacci la46337
- a cincea linie a fişierului de ieşire va conţine restul împărţirii celui de al
n
-lea număr Fibonacci la46337
.
În cazul în care problema nu are soluţie, fişierul de ieşire va conţine pe prima sa linie valoarea -1
.
Restricții și precizări
3<n<25000
- Indicii numerelor Fibonacci pornesc de la
1
:f
1
=1
,f
2
=1
,f
3
=2
, ... - Pot exista mai multe soluţii, în acest caz se acceptă oricare dintre ele.
Exemplu:
fibo.in
5
fibo.out
1 1 3 1 2 5
Explicație
1
– este vorba de o sumă
se folosesc elementele f
1
şi f
3
f
1
mod 46337 = 1
f
3
mod 46337 = 2
f
5
mod 46337 = 5
fiindcă f
5
= f
1
2
+ f
3
2
= 1 + 4 = 5
Exemplu:
fibo.in
5
fibo.out
0 3 4 2 3 5
Explicație
0
– este vorba de o diferenţă
se folosesc elementele f
3
şi f
4
f
3
mod 46337 = 2
f
4
mod 46337 = 3
f
5
mod 46337 = 5
fiindcă f
5
= f
4
2
- f
3
2
= 9 - 4 = 5
Exemplu:
fibo.in
12
fibo.out
0 5 7 5 13 144
Explicație
0
– este vorba de o diferenţă
se folosesc elementele f
5
şi f
7
f
5
mod 46337 = 5
f
7
mod 46337 = 13
f
12
mod 46337 = 144
fiindcă f
12
= f
7
2
- f
5
2
= 169 - 25 = 144