#4419
WeightDif
Se dă un graf conex neorientat G
cu N
noduri și M
muchii, fiecare muchie având asociat un cost. Un arbore parțial pentru G
este un subgraf cu structura de arbore, care cuprinde toate nodurile și o parte din muchii. Se cere găsirea unui arbore parțial al grafului G
, astfel încât diferența dintre cel mai mare și cel mai mic cost al unei muchii să fie minimă.
Urmașii lui Moisil 2023, clasele XI-XII
Problema | WeightDif | Operații I/O |
![]() weightdif.in /weightdif.out
|
---|---|---|---|
Limita timp | 3 secunde | Limita memorie |
Total: 256 MB
/
Stivă 64 MB
|
Id soluție | #57322880 | Utilizator | |
Fișier | weightdif.cpp | Dimensiune | 3.18 KB |
Data încărcării | 25 Martie 2025, 22:15 | Scor / rezultat | Eroare de compilare |
weightdif.cpp: In member function 'bool DSU::unite(int, int)': weightdif.cpp:34:38: error: converting to 'std::stack<std::tuple<int, int, int> >::value_type {aka std::tuple<int, int, int>}' from initializer list would use explicit constructor 'constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {int, int, int}; <template-parameter-2-2> = void; _Elements = {int, int, int}]' changes.push({-1, -1, -1}); ^ weightdif.cpp:41:43: error: converting to 'std::stack<std::tuple<int, int, int> >::value_type {aka std::tuple<int, int, int>}' from initializer list would use explicit constructor 'constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {int&, int&, int&}; <template-parameter-2-2> = void; _Elements = {int, int, int}]' changes.push({b, parent[b], sz[a]}); ^ weightdif.cpp: In member function 'void DSU::rollback()': weightdif.cpp:51:14: error: expected unqualified-id before '[' token auto [b, oldp, oldsz] = changes.top(); ^ weightdif.cpp:54:12: error: 'b' was not declared in this scope if(b == -1) { ^ weightdif.cpp:59:16: error: 'b' was not declared in this scope parent[b] = oldp; ^ weightdif.cpp:59:21: error: 'oldp' was not declared in this scope parent[b] = oldp; ^ weightdif.cpp:60:20: error: 'oldsz' was not declared in this scope sz[oldp] = oldsz; ^ weightdif.cpp: In function 'int main()': weightdif.cpp:81:47: error: parameter declared 'auto' sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:56: error: parameter declared 'auto' sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp: In lambda function: weightdif.cpp:82:16: error: 'a' was not declared in this scope return a.cost < b.cost; ^ weightdif.cpp:82:25: error: 'b' was not declared in this scope return a.cost < b.cost; ^ 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h: In instantiation of 'void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]': /usr/include/c++/4.8/bits/stl_algo.h:2226:70: required from 'void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:5500:55: required from 'void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' weightdif.cpp:83:6: required from here /usr/include/c++/4.8/bits/stl_algo.h:2159:29: error: no match for call to '(main()::__lambda4) (Edge&, Edge&)' if (__comp(*__i, *__first)) ^ weightdif.cpp:81:39: note: candidates are: sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:2159:29: note: void (*)() <conversion> if (__comp(*__i, *__first)) ^ /usr/include/c++/4.8/bits/stl_algo.h:2159:29: note: candidate expects 1 argument, 3 provided weightdif.cpp:81:57: note: main()::__lambda4 sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:57: note: candidate expects 0 arguments, 2 provided 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h: In instantiation of 'void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]': /usr/include/c++/4.8/bits/stl_algo.h:5349:59: required from 'void std::partial_sort(_RAIter, _RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:2332:68: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Size = int; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:5499:44: required from 'void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' weightdif.cpp:83:6: required from here /usr/include/c++/4.8/bits/stl_algo.h:1948:27: error: no match for call to '(main()::__lambda4) (Edge&, Edge&)' if (__comp(*__i, *__first)) ^ weightdif.cpp:81:39: note: candidates are: sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:1948:27: note: void (*)() <conversion> if (__comp(*__i, *__first)) ^ /usr/include/c++/4.8/bits/stl_algo.h:1948:27: note: candidate expects 1 argument, 3 provided weightdif.cpp:81:57: note: main()::__lambda4 sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:57: note: candidate expects 0 arguments, 2 provided 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h: In instantiation of 'void std::__move_median_to_first(_Iterator, _Iterator, _Iterator, _Iterator, _Compare) [with _Iterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]': /usr/include/c++/4.8/bits/stl_algo.h:2295:13: required from '_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:2337:62: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Size = int; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:5499:44: required from 'void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' weightdif.cpp:83:6: required from here /usr/include/c++/4.8/bits/stl_algo.h:114:28: error: no match for call to '(main()::__lambda4) (Edge&, Edge&)' if (__comp(*__a, *__b)) ^ weightdif.cpp:81:39: note: candidates are: sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:114:28: note: void (*)() <conversion> if (__comp(*__a, *__b)) ^ /usr/include/c++/4.8/bits/stl_algo.h:114:28: note: candidate expects 1 argument, 3 provided weightdif.cpp:81:57: note: main()::__lambda4 sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:57: note: candidate expects 0 arguments, 2 provided 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:116:25: error: no match for call to '(main()::__lambda4) (Edge&, Edge&)' if (__comp(*__b, *__c)) ^ weightdif.cpp:81:39: note: candidates are: sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:116:25: note: void (*)() <conversion> if (__comp(*__b, *__c)) ^ /usr/include/c++/4.8/bits/stl_algo.h:116:25: note: candidate expects 1 argument, 3 provided weightdif.cpp:81:57: note: main()::__lambda4 sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:57: note: candidate expects 0 arguments, 2 provided 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:118:30: error: no match for call to '(main()::__lambda4) (Edge&, Edge&)' else if (__comp(*__a, *__c)) ^ weightdif.cpp:81:39: note: candidates are: sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:118:30: note: void (*)() <conversion> else if (__comp(*__a, *__c)) ^ /usr/include/c++/4.8/bits/stl_algo.h:118:30: note: candidate expects 1 argument, 3 provided weightdif.cpp:81:57: note: main()::__lambda4 sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:57: note: candidate expects 0 arguments, 2 provided 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:123:33: error: no match for call to '(main()::__lambda4) (Edge&, Edge&)' else if (__comp(*__a, *__c)) ^ weightdif.cpp:81:39: note: candidates are: sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:123:33: note: void (*)() <conversion> else if (__comp(*__a, *__c)) ^ /usr/include/c++/4.8/bits/stl_algo.h:123:33: note: candidate expects 1 argument, 3 provided weightdif.cpp:81:57: note: main()::__lambda4 sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:57: note: candidate expects 0 arguments, 2 provided 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:125:33: error: no match for call to '(main()::__lambda4) (Edge&, Edge&)' else if (__comp(*__b, *__c)) ^ weightdif.cpp:81:39: note: candidates are: sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:125:33: note: void (*)() <conversion> else if (__comp(*__b, *__c)) ^ /usr/include/c++/4.8/bits/stl_algo.h:125:33: note: candidate expects 1 argument, 3 provided weightdif.cpp:81:57: note: main()::__lambda4 sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:57: note: candidate expects 0 arguments, 2 provided 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h: In instantiation of '_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Tp = Edge; _Compare = main()::__lambda4]': /usr/include/c++/4.8/bits/stl_algo.h:2296:78: required from '_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:2337:62: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Size = int; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:5499:44: required from 'void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' weightdif.cpp:83:6: required from here /usr/include/c++/4.8/bits/stl_algo.h:2263:35: error: no match for call to '(main()::__lambda4) (Edge&, const Edge&)' while (__comp(*__first, __pivot)) ^ weightdif.cpp:81:39: note: candidates are: sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:2263:35: note: void (*)() <conversion> while (__comp(*__first, __pivot)) ^ /usr/include/c++/4.8/bits/stl_algo.h:2263:35: note: candidate expects 1 argument, 3 provided weightdif.cpp:81:57: note: main()::__lambda4 sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:57: note: candidate expects 0 arguments, 2 provided 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:2266:34: error: no match for call to '(main()::__lambda4) (const Edge&, Edge&)' while (__comp(__pivot, *__last)) ^ weightdif.cpp:81:39: note: candidates are: sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:2266:34: note: void (*)() <conversion> while (__comp(__pivot, *__last)) ^ /usr/include/c++/4.8/bits/stl_algo.h:2266:34: note: candidate expects 1 argument, 3 provided weightdif.cpp:81:57: note: main()::__lambda4 sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:57: note: candidate expects 0 arguments, 2 provided In file included from /usr/include/c++/4.8/bits/stl_algo.h:61:0, from /usr/include/c++/4.8/algorithm:62, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_heap.h: In instantiation of 'void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Distance = int; _Tp = Edge; _Compare = main()::__lambda4]': /usr/include/c++/4.8/bits/stl_heap.h:448:15: required from 'void std::make_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:1946:47: required from 'void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:5349:59: required from 'void std::partial_sort(_RAIter, _RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:2332:68: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Size = int; _Compare = main()::__lambda4]' /usr/include/c++/4.8/bits/stl_algo.h:5499:44: required from 'void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]' weightdif.cpp:83:6: required from here /usr/include/c++/4.8/bits/stl_heap.h:313:40: error: no match for call to '(main()::__lambda4) (Edge&, Edge&)' *(__first + (__secondChild - 1)))) ^ weightdif.cpp:81:39: note: candidates are: sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ In file included from /usr/include/c++/4.8/bits/stl_algo.h:61:0, from /usr/include/c++/4.8/algorithm:62, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_heap.h:313:40: note: void (*)() <conversion> *(__first + (__secondChild - 1)))) ^ /usr/include/c++/4.8/bits/stl_heap.h:313:40: note: candidate expects 1 argument, 3 provided weightdif.cpp:81:57: note: main()::__lambda4 sort(edges.begin(), edges.end(), [](auto &a, auto &b){ ^ weightdif.cpp:81:57: note: candidate expects 0 arguments, 2 provided 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 weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h: At global scope: /usr/include/c++/4.8/bits/stl_algo.h:2110:5: error: 'void std::__unguarded_linear_insert(_RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]', declared using local type 'main()::__lambda4', is used but never defined [-fpermissive] __unguarded_linear_insert(_RandomAccessIterator __last, ^ In file included from /usr/include/c++/4.8/bits/stl_algo.h:61:0, from /usr/include/c++/4.8/algorithm:62, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from weightdif.cpp:1: /usr/include/c++/4.8/bits/stl_heap.h:331:5: error: 'void std::__pop_heap(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Compare = main()::__lambda4]', declared using local type 'main()::__lambda4', is used but never defined [-fpermissive] __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, ^ /usr/include/c++/4.8/bits/stl_heap.h:178:5: error: 'void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Edge*, std::vector<Edge> >; _Distance = int; _Tp = Edge; _Compare = main()::__lambda4]', declared using local type 'main()::__lambda4', is used but never defined [-fpermissive] __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema WeightDif 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ă.