#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 | #54343823 | Utilizator | |
Fișier | extindere.cpp | Dimensiune | 536 B |
Data încărcării | 26 Noiembrie 2024, 10:41 | Scor / rezultat | Eroare de compilare |
extindere.cpp: In function 'int div(int, int, bool)': extindere.cpp:14:11: error: 'n' was not declared in this scope int a=n/(nr_grupa/4); ^ extindere.cpp:21:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ extindere.cpp: In function 'int main()': extindere.cpp:35:21: error: cannot bind 'std::ostream {aka std::basic_ostream<char>}' lvalue to 'std::basic_ostream<char>&&' cout<<div(nr/4,n); ^ In file included from /usr/include/c++/4.8/iostream:39:0, from extindere.cpp:1: /usr/include/c++/4.8/ostream:602:5: error: initializing argument 1 of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = div_t]' operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x) ^
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ă.