#2896
binar1
Pentru a converti un număr din zecimal în binar îl vom împărți la 2
în mod repetat, până ce obținem câtul zero. Apoi vom colecta resturile obținute de la ultimul către primul. Aceste resturi sunt cifrele din reprezentarea binară a numărului dat, de la stânga la dreapta. De exemplu, 13
(10)
= 1101
(2)
.
Scrieți un program care, pentru un șir dat de n numere naturale, rezolvă următoarele cerințe:
1) Determină cel mai mare dintre cele n
numere date ce are număr maxim de valori de 1
în reprezentarea binară.
2) Determină cea mai lungă secvență de numere care au număr egal de valori de 1
în reprezentarea binară. Dacă sunt mai multe astfel de secvențe de lungime maximă, se va alege cea mai din stânga. O secvență este un subșir de numere care apar pe poziții consecutive în șirul inițial.
Olimpiada Municipală Iași, clasa a IX-a
Problema | binar1 | Operații I/O |
binar.in /binar.out
|
---|---|---|---|
Limita timp | 1.5 secunde | Limita memorie |
Total: 8 MB
/
Stivă 2 MB
|
Id soluție | #54054939 | Utilizator | |
Fișier | binar1.cpp | Dimensiune | 1.25 KB |
Data încărcării | 18 Noiembrie 2024, 20:04 | Scor / rezultat | Eroare de compilare |
binar1.cpp: In function 'int main()': binar1.cpp:26:41: error: no matching function for call to 'max(int&, long long int&)' if(numarecif(x)==s)m=max(m,x); ^ binar1.cpp:26:41: note: candidates are: In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from binar1.cpp:1: /usr/include/c++/4.8/bits/stl_algobase.h:216:5: note: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) max(const _Tp& __a, const _Tp& __b) ^ /usr/include/c++/4.8/bits/stl_algobase.h:216:5: note: template argument deduction/substitution failed: binar1.cpp:26:41: note: deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int') if(numarecif(x)==s)m=max(m,x); ^ In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from binar1.cpp:1: /usr/include/c++/4.8/bits/stl_algobase.h:260:5: note: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) max(const _Tp& __a, const _Tp& __b, _Compare __comp) ^ /usr/include/c++/4.8/bits/stl_algobase.h:260:5: note: template argument deduction/substitution failed: binar1.cpp:26:41: note: deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int') if(numarecif(x)==s)m=max(m,x); ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from binar1.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:4231:5: note: template<class _Tp> _Tp std::max(std::initializer_list<_Tp>) max(initializer_list<_Tp> __l) ^ /usr/include/c++/4.8/bits/stl_algo.h:4231:5: note: template argument deduction/substitution failed: binar1.cpp:26:41: note: mismatched types 'std::initializer_list<_Tp>' and 'int' if(numarecif(x)==s)m=max(m,x); ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from binar1.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:4236:5: note: template<class _Tp, class _Compare> _Tp std::max(std::initializer_list<_Tp>, _Compare) max(initializer_list<_Tp> __l, _Compare __comp) ^ /usr/include/c++/4.8/bits/stl_algo.h:4236:5: note: template argument deduction/substitution failed: binar1.cpp:26:41: note: mismatched types 'std::initializer_list<_Tp>' and 'int' if(numarecif(x)==s)m=max(m,x); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema binar1 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ă.