Fișierul intrare/ieșire maximum.in, maximum.out Sursă acm.timus.ru
Autor Emil Kelevedjiev | Vladimir Yakovlev Adăugată de avatar spatarel 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
open book Poți vedea testele pentru această problemă accesând atașamentele .

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.

Trebuie să te autentifici pentru a trimite soluții. Click aici