#4405
Prin operația de unificare a două numere naturale a și b înțelegem obținerea celui mai mare număr care se poate forma din cifrele distincte din scrierea numărului a și cifrele distincte din scrierea numărului b. Determinați și afișați:
1. cel mai mare număr de exact k cifre din șirul dat;
2. cel mai mare număr care poate fi obținut prin unificarea a două valori aflate pe poziții alăturate în șirul dat;
3. cel mai mare număr care se poate obține prin unificarea a k valori aflate pe poziții consecutive în șirul dat.
OJI 2023, clasa a VI-a
| Problema | unificare | Operații I/O |
unificare.in/unificare.out
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #62894778 | Utilizator | |
| Fișier | unificare.cpp | Dimensiune | 1.32 KB |
| Data încărcării | 05 Februarie 2026, 13:35 | Scor/rezultat | Eroare de compilare |
unificare.cpp: In function 'std::string verif_maxim(std::string, std::string)': unificare.cpp:11:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<s1.size();i++){ ^ unificare.cpp: In function 'int main()': unificare.cpp:27:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(s.size()==k && s>maxnr)maxnr=s; ^ unificare.cpp:33:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<s.size();i++){ ^ unificare.cpp:42:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<s2.size();i++) ^ unificare.cpp:43:22: error: no match for 'operator-' (operand types are 'std::string {aka std::basic_string<char>}' and 'char') f2[s2-'0']++; ^ unificare.cpp:43:22: note: candidates are: In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from unificare.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:327:5: note: template<class _Iterator> typename std::reverse_iterator<_Iterator>::difference_type std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&) operator-(const reverse_iterator<_Iterator>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:327:5: note: template argument deduction/substitution failed: unificare.cpp:43:23: note: 'std::string {aka std::basic_string<char>}' is not derived from 'const std::reverse_iterator<_Iterator>' f2[s2-'0']++; ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from unificare.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:379:5: note: template<class _IteratorL, class _IteratorR> decltype ((__y.base() - __x.base())) std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&) operator-(const reverse_iterator<_IteratorL>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:379:5: note: template argument deduction/substitution failed: unificare.cpp:43:23: note: 'std::string {aka std::basic_string<char>}' is not derived from 'const std::reverse_iterator<_Iterator>' f2[s2-'0']++; ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from unificare.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:1104:5: note: template<class _IteratorL, class _IteratorR> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_Iterator>&, const std::move_iterator<_IteratorR>&) operator-(const move_iterator<_IteratorL>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:1104:5: note: template argument deduction/substitution failed: unificare.cpp:43:23: note: 'std::string {aka std::basic_string<char>}' is not derived from 'const std::move_iterator<_Iterator>' f2[s2-'0']++; ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from unificare.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:1111:5: note: template<class _Iterator> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_Iterator>&, const std::move_iterator<_Iterator>&) operator-(const move_iterator<_Iterator>& __x, ^ /usr/include/c++/4.8/bits/stl_iterator.h:1111:5: note: template argument deduction/substitution failed: unificare.cpp:43:23: note: 'std::string {aka std::basic_string<char>}' is not derived from 'const std::move_iterator<_Iterator>' f2[s2-'0']++; ^ In file included from /usr/include/c++/4.8/vector:65:0, from /usr/include/c++/4.8/bits/random.h:34, from /usr/include/c++/4.8/random:50, from /usr/include/c++/4.8/bits/stl_algo.h:65, from /usr/include/c++/4.8/algorithm:62, from unificare.cpp:2: /usr/include/c++/4.8/bits/stl_bvector.h:208:3: note: std::ptrdiff_t std::operator-(const std::_Bit_iterator_base&, const std::_Bit_iterator_base&) operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) ^ /usr/include/c++/4.8/bits/stl_bvector.h:208:3: note: no known conversion for argument 1 from 'std::string {aka std::basic_string<char>}' to 'const std::_Bit_iterator_base&' In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from unificare.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:896:5: note: template<class _Iterator, class _Container> typename __gnu_cxx::__normal_iterator<_Iterator, _Container>::difference_type __gnu_cxx::operator-(const __gnu_cxx::__normal_iterator<_Iterator, _Container>&, const __gnu_cxx::__normal_iterator<_Iterator, _Container>&) operator-(const __normal_iterator<_Iterator, _Container>& __lhs, ^ /usr/include/c++/4.8/bits/stl_iterator.h:896:5: note: template argument deduction/substitution failed: unificare.cpp:43:23: note: 'std::string {aka std::basic_string<char>}' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>' f2[s2-'0']++; ^ In file included from /usr/include/c++/4.8/bits/stl_algobase.h:67:0, from /usr/include/c++/4.8/bits/char_traits.h:39, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from unificare.cpp:1: /usr/include/c++/4.8/bits/stl_iterator.h:884:5: note: template<class _IteratorL, class _IteratorR, class _Container> decltype ((__lhs.base() - __rhs.base())) __gnu_cxx::operator-(const __gnu_cxx::__normal_iterator<_IteratorL, _Container>&, const __gnu_cxx::__normal_iterator<_IteratorR, _Container>&) operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, ^ /usr/include/c++/4.8/bits/stl_iterator.h:884:5: note: template argument deduction/substitution failed: unificare.cpp:43:23: note: 'std::string {aka std::basic_string<char>}' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>' f2[s2-'0']++; ^ unificare.cpp:44:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<s2.size();i++) ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema unificare 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ă.