#1505
B210
Vasilică tocmai a învăţat la şcoală despre sistemul de numeraţie cu baza 2
. I se pare interesant şi a inventat jocul b210
, pe care vrea să îl joace cu prietenul său Gigel. Vasilică îi spune lui Gigel un număr natural nenul n
, scris în baza 10
. Gigel trebuie să scrie numărul în baza 2
, obţinând astfel o secvenţă de cifre binare, care începe cu 1
. Asupra scrierii în baza 2
a numărului n
Gigel poate aplica una sau mai multe permutări circulare. Printr-o permutare circulară, toate cifrele secvenţei date, exceptând ultima, sunt mutate cu o poziţie spre dreapta, iar ultima cifră devine prima.
De exemplu, dacă n=107
, scrierea sa în baza 2
este 1101011
. Prin permutări circulare succesive putem obţine, în ordine, secvenţele:
1110101 1111010 0111101 1011110 ...
Fiecare astfel de secvenţă este scrierea în baza 2
a unui număr natural, pe care Gigel îl transformă în baza 10
. Gigel trebuie să afle care este cel mai mare număr natural m
, scris în baza 10
, a cărui scriere în baza 2
se poate obţine prin una sau mai multe permutări circulare ale scrierii în baza 2
a numărului n
. Lui Gigel jocul nu i se pare aşa interesant şi ar prefera să aibă un program care să determine în locul lui numărul natural m
.
Scrieţi un program care citeşte numărul natural nenul n
şi care determină cel mai mare număr natural m
, scris în baza 10
, care poate fi obţinut prin una sau mai multe permutări circulare ale scrierii în baza 2
a numărului natural n
.
Olimpiada Municipala Informatica Iasi 2016
Problema | B210 | Operații I/O |
b210.in /b210.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 2 MB
/
Stivă 1 MB
|
Id soluție | #54671720 | Utilizator | |
Fișier | b210.cpp | Dimensiune | 580 B |
Data încărcării | 05 Decembrie 2024, 09:19 | Scor / rezultat | Eroare de compilare |
b210.cpp:6:27: error: size of array 'v' is too large long long int v[1000000000],n,maxi,x,cnt=1,i,b,p2,s,aux; ^ b210.cpp: In function 'int main()': b210.cpp:14:9: error: 'v' was not declared in this scope v[cnt]=i; ^ b210.cpp:18:11: error: 'v' was not declared in this scope while(v[1]) ^ b210.cpp:30:13: error: 'v' was not declared in this scope s=s+v[i]*p2; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema B210 face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.