Fișierul intrare/ieșire | maximum.in, maximum.out | Sursă | acm.timus.ru |
---|---|---|---|
Autor | Emil Kelevedjiev | Vladimir Yakovlev | Adăugată de | Spatarel Dan-Constantin • spatarel |
Timp de execuție pe test | 0.4 sec | Limită de memorie | 2000 KB |
Scorul tău | N/A | Dificultate | N/A |
Vezi soluțiile trimise | Statistici
Maximum
Fie șirul de numere A definit astfel:
A0 = 0
A1 = 1
A2 * i = Ai
A2 * i + 1 = Ai + Ai + 1
Scrieți un program care pentru un număr natural N dat găsește numărul M, maximul dintre numerele A0, A1, ..., AN.
Date de intrare
Datele de intrare se citesc din fișierul maximum.in:
- pe prima linie se găsește un număr intreg T;
- pe fiecare dintre următoarele T linii se găsește câte un număr intreg N.
Date de ieșire
Datele de ieșire se tipăresc în fișierul maximum.out
- pe fiecare dintre primele T linii se găsește câte un număr M, corespunzător unui număr N din fișierul de intrare.
Restricții
- 1 ≤ T ≤ 10 000
- 1 ≤ N ≤ 1018
- Pentru 40% din teste se garantează că: 1 ≤ T ≤ 10 și 1 ≤ N ≤ 100 000
Exemplu
maximum.in | maximum.out |
---|---|
2 5 10 |
3 4 |
Explicație
A0 = 0
A1 = 1
A2 = 1
A3 = 2
A4 = 1
A5 = 3
A6 = 2
A7 = 3
A8 = 1
A9 = 4
A10 = 3
Dacă N = 5, atunci M = max(0, 1, 1, 2, 1, 3) = 3.
Dacă N = 10, atunci M = max(0, 1, 1, 2, 1, 3, 2, 3, 1, 4, 3) = 4.