#2202
extindere
Se consideră operația
: {1; 2} → {1; 2}
, astfel încât 1
= 2
, 2
= 1
. Operația se extinde asupra oricărei secvențe formate cu cifre de 1
și 2
, de exemplu 1211212121
=2122121212
.
Se consideră șirul infinit s
format cu cifre de 1
și 2
, generat incremental prin extindere după următoarea regulă de concatenare:
s1 = 1221
, s2 = 1221211221121221
, … , sk+1 = sk
sk sk
sk
, …, pentru orice număr natural nenul k
.
Să se scrie un program care pentru un n
număr natural nenul cunoscut determină și afișează a n
-a cifră a șirului s
, astfel încât numărul de pași ai programului să fie proporțional cu log2(n)
(complexitate timp logaritmică în funcție de n
).
Admitere FMI Bucuresti - 2014
Problema | extindere | Operații I/O |
![]() extindere.in /extindere.out
|
---|---|---|---|
Limita timp | 0.01 secunde | Limita memorie |
Total: 0.1 MB
/
Stivă 0.1 MB
|
Id soluție | #39918313 | Utilizator | |
Fișier | extindere.cpp | Dimensiune | 967 B |
Data încărcării | 21 Noiembrie 2022, 18:22 | Scor / rezultat | Eroare de compilare |
extindere.cpp: In function 'int main()': extindere.cpp:10:5: error: 'cin' was not declared in this scope cin>>n; ^ extindere.cpp:22:21: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if(x==2 && y==2 || x==2 && y==1) ^ extindere.cpp:24:21: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if(x==1 && y==1 || x==1 && y==2) ^ extindere.cpp:28:9: error: 'cout' was not declared in this scope cout<<y; ^ extindere.cpp:36:21: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if(x==1 && y==1 || x==1 && y==2) ^ extindere.cpp:38:21: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if(x==2 && y==1 || x==2 && y==2) ^ extindere.cpp:42:9: error: 'cout' was not declared in this scope cout<<y; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema extindere 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ă.