Collatz are vectori, fiecare vector () fiind format inițial din numerele naturale consecutive de la la . După părerea lui, un vector îngrijit are toate elementele egale cu . Deoarece lui Collatz îi plac vectorii îngrijiți, el își dorește ca toate elementele vectorilor să devină , așa că transformă pe rând vectorii, aplicând pentru fiecare un număr minim de operații. O operație constă din alegerea unui element al vectorului și apoi:
- dacă elementul este par, atunci valoarea lui se înjumătățește;
- dacă elementul este impar, având inițial valoarea , atunci valoarea lui devine .
Cerință
Pentru fiecare dintre cei vectori, determinați numărul minim de operații prin care poate deveni îngrijit.
Date de intrare
Fișierul de intrare collatz.in conține pe prima linie numărul , cu semnificația din enunț, iar pe fiecare din următoarele linii se află câte două numere și , separate prin câte un spațiu, cu semnificația din enunț pentru fiecare vector .
Date de ieșire
Fișierul de ieșire collatz.out conține numere, fiecare pe câte o linie, reprezentând numărul minim cerut pentru fiecare dintre cei vectori în ordine.
Restricții și precizări
- , număr natural;
- și sunt numere naturale, pentru orice .
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 63 | |
| 2 | 16 | |
| 3 | 12 | |
| 4 | 9 | fără alte restricții |
Exemplu
collatz.in
3
2 2
4 5
1 4
collatz.out
1
9
7
Explicație
Primul vector: Vectorul inițial este . Este nevoie de o singură operație pentru a-l transforma pe în .
Al doilea vector: Vectorul inițial este . O succesiune posibilă de operații pentru a transforma vectorul în este următoarea:
Al treilea vector: vectorul inițial este . O succesiune posibilă de operații pentru a transforma vectorul în este:
- .