Cerința
La un campionat de șah participa n
persoane. Știind că la fiecare rundă se fac grupe de câte 2
persoane, iar câștigătorul trece în runda următoare, aflați după câte runde se va află câștigătorul.
Date de intrare
Programul citește de la tastatură numărul n
.
Date de ieșire
Programul va afișa pe ecran numărul de runde.
Restricții și precizări
n ≤ 4.444.444.444
- Dacă nu se poate realiza campionatul în conformitate cu regulile de mai sus, se va afișa
-1
.
Exemplul 1:
Intrare
4
Ieșire
2
Explicație
În prima rundă se formează 2
grupe de 2
participanți. În runda următoare va fi o grupa de 2
, după care se va află câștigătorul.
Exemplul 2:
Intrare
3
Ieșire
-1
Explicație
Nu se poate realiza campionatul cu regulile din enunț.
#include <bits/stdc++.h> using namespace std; int main() { unsigned long long n , cnt = 0; cin >> n; if(n == 1) cout << 0; else if(n % 2 == 1 || n == 0) cout << -1; else { while(n % 2 == 0) { cnt++; n /= 2; } if(cnt > 0 && n == 1) cout << cnt ; else cout << -1; } return 0; }