#3107
În Săptămâna Altfel – Să știi mai multe, să fi mai bun, elevii A și B se joacă un joc altfel, joc numit margi. Cei doi au la dispoziție o matrice pătratică binară de dimensiune 2n.
Scopul jocului este obținerea sumei maxim posibile prin adunarea punctajelor celor doi jucători. Dacă există mai multe posibilități de obținere a acestei sume, fiecare jucător va alege matricele cu număr de ordine mai mic.
Pentru un n număr natural dat și o matrice binară de dimensiunea 2n, se cere să se determine punctajul maxim obținut de cei doi jucători. Se cere și determinarea unei strategii de alegere a matricelor la fiecare pas care să ducă la obținerea punctajului maxim.
| Problema | margi | Operații I/O |
margi.in/margi.out
|
|---|---|---|---|
| Limita timp | 0.2 secunde | Limita memorie |
Total: 128 MB
/
Stivă 8 MB
|
| Id soluție | #64177210 | Utilizator | |
| Fișier | margi.cpp | Dimensiune | 2.25 KB |
| Data încărcării | 21 Aprilie 2026, 18:30 | Scor/rezultat | Eroare de compilare |
margi.cpp: In function ‘long long int solve(int, int, int, int, std::vector<int>&, std::vector<int>&)’: margi.cpp:37:33: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’ 37 | sort(v.begin(), v.end(), [](auto &a, auto &b){ | ^~~~ margi.cpp:37:42: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’ 37 | sort(v.begin(), v.end(), [](auto &a, auto &b){ | ^~~~ margi.cpp: In lambda function: margi.cpp:38:14: error: request for member ‘val’ in ‘a’, which is of non-class type ‘int’ 38 | if(a.val != b.val) return a.val > b.val; | ^~~ margi.cpp:38:23: error: request for member ‘val’ in ‘b’, which is of non-class type ‘int’ 38 | if(a.val != b.val) return a.val > b.val; | ^~~ margi.cpp:38:37: error: request for member ‘val’ in ‘a’, which is of non-class type ‘int’ 38 | if(a.val != b.val) return a.val > b.val; | ^~~ margi.cpp:38:45: error: request for member ‘val’ in ‘b’, which is of non-class type ‘int’ 38 | if(a.val != b.val) return a.val > b.val; | ^~~ margi.cpp:39:18: error: request for member ‘id’ in ‘a’, which is of non-class type ‘int’ 39 | return a.id < b.id; | ^~ margi.cpp:39:25: error: request for member ‘id’ in ‘b’, which is of non-class type ‘int’ 39 | return a.id < b.id; | ^~ In file included from /usr/include/c++/13/bits/stl_algobase.h:71, from /usr/include/c++/13/algorithm:60, from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51, from margi.cpp:1: /usr/include/c++/13/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_comp_iter<_Compare>::operator()(_Iterator1, _Iterator2) [with _Iterator1 = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, std::vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Iterator2 = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, std::vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>]’: /usr/include/c++/13/bits/stl_algo.h:1819:14: required from ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:1859:25: required from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:1950:31: required from ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:4894:18: required from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>]’ margi.cpp:37:9: required from here /usr/include/c++/13/bits/predefined_ops.h:158:30: error: no match for call to ‘(solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>) (solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node&, solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node&)’ 158 | { return bool(_M_comp(*__it1, *__it2)); } | ~~~~~~~^~~~~~~~~~~~~~~~ margi.cpp:37:30: note: candidate: ‘solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>’ 37 | sort(v.begin(), v.end(), [](auto &a, auto &b){ | ^ margi.cpp:37:30: note: no known conversion for argument 1 from ‘solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node’ to ‘int&’ /usr/include/c++/13/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Val_comp_iter<_Compare>::operator()(_Value&, _Iterator) [with _Value = solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node; _Iterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, std::vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>]’: /usr/include/c++/13/bits/stl_algo.h:1799:20: required from ‘void std::__unguarded_linear_insert(_RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Val_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:1827:36: required from ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:1859:25: required from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:1950:31: required from ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:4894:18: required from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>]’ margi.cpp:37:9: required from here /usr/include/c++/13/bits/predefined_ops.h:240:30: error: no match for call to ‘(solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>) (solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node&, solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node&)’ 240 | { return bool(_M_comp(__val, *__it)); } | ~~~~~~~^~~~~~~~~~~~~~ margi.cpp:37:30: note: candidate: ‘solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>’ 37 | sort(v.begin(), v.end(), [](auto &a, auto &b){ | ^ margi.cpp:37:30: note: no known conversion for argument 1 from ‘solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node’ to ‘int&’ /usr/include/c++/13/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_comp_val<_Compare>::operator()(_Iterator, _Value&) [with _Iterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, std::vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Value = solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node; _Compare = solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>]’: /usr/include/c++/13/bits/stl_heap.h:140:48: required from ‘void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Distance = long int; _Tp = solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node; _Compare = __gnu_cxx::__ops::_Iter_comp_val<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_heap.h:247:23: required from ‘void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Distance = long int; _Tp = solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_heap.h:356:22: required from ‘void std::__make_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:1635:23: required from ‘void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:1910:25: required from ‘void std::__partial_sort(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:1926:27: required from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Size = long int; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:1947:25: required from ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)> >]’ /usr/include/c++/13/bits/stl_algo.h:4894:18: required from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node*, vector<solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node> >; _Compare = solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>]’ margi.cpp:37:9: required from here /usr/include/c++/13/bits/predefined_ops.h:196:30: error: no match for call to ‘(solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>) (solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node&, solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node&)’ 196 | { return bool(_M_comp(*__it, __val)); } | ~~~~~~~^~~~~~~~~~~~~~ margi.cpp:37:30: note: candidate: ‘solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::<lambda(int&, int&)>’ 37 | sort(v.begin(), v.end(), [](auto &a, auto &b){ | ^ margi.cpp:37:30: note: no known conversion for argument 1 from ‘solve(int, int, int, int, std::vector<int>&, std::vector<int>&)::Node’ to ‘int&’
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema margi 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ă.