#3105
bete2
Se dau N
bețe de bambus având lungimile L[1]
, L[2]
, …, L[N]
. Conform unei tradiții străvechi, două bețe sunt în armonie dacă au aceeași lungime. Întrucât cele N
lungimi pot diferi, nu este evident cum se pot face perechi de bețe armonioase. Astfel, se pot alege două bețe și în cazul în care unul dintre ele este mai lung, acesta va fi tăiat la o lungime corespunzătoare cu a celuilalt, pentru a armoniza cu perechea sa. Surplusul este adăugat la grupul de bețe deja existente, iar perechea este lăsată separat, să armonizeze îndelung pentru a aduce noroc și prosperitate. Procedeul de mai sus este repetat succesiv până când, fie toate bețele sunt epuizate, fie se va obține un singur băț. Dându-se Q
seturi de bețe, să se determine pentru fiecare set, care este cea mai mică lungime posibilă a bățului final, nearmonizat.
Lot Național Juniori 2019
Problema | bete2 | Operații I/O |
bete.in /bete.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 128 MB
/
Stivă 8 MB
|
Id soluție | #16385946 | Utilizator | |
Fișier | bete2.cpp | Dimensiune | 574 B |
Data încărcării | 24 Iulie 2019, 01:22 | Scor / rezultat | Eroare de compilare |
bete2.cpp: In function 'int main()': bete2.cpp:19:27: error: no matching function for call to 'std::multiset<int>::erase(std::multiset<int>::reverse_iterator)' s.erase(s.rbegin()); ^ bete2.cpp:19:27: note: candidates are: In file included from /usr/include/c++/4.8/set:62:0, from bete2.cpp:1: /usr/include/c++/4.8/bits/stl_multiset.h:537:7: note: std::multiset<_Key, _Compare, _Alloc>::iterator std::multiset<_Key, _Compare, _Alloc>::erase(std::multiset<_Key, _Compare, _Alloc>::const_iterator) [with _Key = int; _Compare = std::less<int>; _Alloc = std::allocator<int>; std::multiset<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<int>; std::multiset<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<int>] erase(const_iterator __position) ^ /usr/include/c++/4.8/bits/stl_multiset.h:537:7: note: no known conversion for argument 1 from 'std::multiset<int>::reverse_iterator {aka std::reverse_iterator<std::_Rb_tree_const_iterator<int> >}' to 'std::multiset<int>::const_iterator {aka std::_Rb_tree_const_iterator<int>}' /usr/include/c++/4.8/bits/stl_multiset.h:567:7: note: std::multiset<_Key, _Compare, _Alloc>::size_type std::multiset<_Key, _Compare, _Alloc>::erase(const key_type&) [with _Key = int; _Compare = std::less<int>; _Alloc = std::allocator<int>; std::multiset<_Key, _Compare, _Alloc>::size_type = unsigned int; std::multiset<_Key, _Compare, _Alloc>::key_type = int] erase(const key_type& __x) ^ /usr/include/c++/4.8/bits/stl_multiset.h:567:7: note: no known conversion for argument 1 from 'std::multiset<int>::reverse_iterator {aka std::reverse_iterator<std::_Rb_tree_const_iterator<int> >}' to 'const key_type& {aka const int&}' /usr/include/c++/4.8/bits/stl_multiset.h:589:7: note: std::multiset<_Key, _Compare, _Alloc>::iterator std::multiset<_Key, _Compare, _Alloc>::erase(std::multiset<_Key, _Compare, _Alloc>::const_iterator, std::multiset<_Key, _Compare, _Alloc>::const_iterator) [with _Key = int; _Compare = std::less<int>; _Alloc = std::allocator<int>; std::multiset<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<int>; std::multiset<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<int>] erase(const_iterator __first, const_iterator __last) ^ /usr/include/c++/4.8/bits/stl_multiset.h:589:7: note: candidate expects 2 arguments, 1 provided bete2.cpp:21:27: error: no matching function for call to 'std::multiset<int>::erase(std::multiset<int>::reverse_iterator)' s.erase(s.rbegin()); ^ bete2.cpp:21:27: note: candidates are: In file included from /usr/include/c++/4.8/set:62:0, from bete2.cpp:1: /usr/include/c++/4.8/bits/stl_multiset.h:537:7: note: std::multiset<_Key, _Compare, _Alloc>::iterator std::multiset<_Key, _Compare, _Alloc>::erase(std::multiset<_Key, _Compare, _Alloc>::const_iterator) [with _Key = int; _Compare = std::less<int>; _Alloc = std::allocator<int>; std::multiset<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<int>; std::multiset<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<int>] erase(const_iterator __position) ^ /usr/include/c++/4.8/bits/stl_multiset.h:537:7: note: no known conversion for argument 1 from 'std::multiset<int>::reverse_iterator {aka std::reverse_iterator<std::_Rb_tree_const_iterator<int> >}' to 'std::multiset<int>::const_iterator {aka std::_Rb_tree_const_iterator<int>}' /usr/include/c++/4.8/bits/stl_multiset.h:567:7: note: std::multiset<_Key, _Compare, _Alloc>::size_type std::multiset<_Key, _Compare, _Alloc>::erase(const key_type&) [with _Key = int; _Compare = std::less<int>; _Alloc = std::allocator<int>; std::multiset<_Key, _Compare, _Alloc>::size_type = unsigned int; std::multiset<_Key, _Compare, _Alloc>::key_type = int] erase(const key_type& __x) ^ /usr/include/c++/4.8/bits/stl_multiset.h:567:7: note: no known conversion for argument 1 from 'std::multiset<int>::reverse_iterator {aka std::reverse_iterator<std::_Rb_tree_const_iterator<int> >}' to 'const key_type& {aka const int&}' /usr/include/c++/4.8/bits/stl_multiset.h:589:7: note: std::multiset<_Key, _Compare, _Alloc>::iterator std::multiset<_Key, _Compare, _Alloc>::erase(std::multiset<_Key, _Compare, _Alloc>::const_iterator, std::multiset<_Key, _Compare, _Alloc>::const_iterator) [with _Key = int; _Compare = std::less<int>; _Alloc = std::allocator<int>; std::multiset<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<int>; std::multiset<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<int>] erase(const_iterator __first, const_iterator __last) ^ /usr/include/c++/4.8/bits/stl_multiset.h:589:7: note: candidate expects 2 arguments, 1 provided
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema bete2 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ă.