#4950
Fie G un graf neorientat conex cu N noduri și M muchii. Nodurile sunt numerotate de la 1 la N iar muchiile au asociate costuri numere naturale date. Un graf parţial al lui G conex şi fără cicluri este denumit arbore parţial. Costul unui arbore parțial este suma costurilor muchiilor arborelui. Deoarece unele muchii pot avea aceelași cost, este posibil ca graful G să aibă mai mulți arbori parțiali de cost minim. Definim o muchie a grafului G ca fiind esențială dacă ea face parte din toți arborii parțiali de cost minim ai lui G. Scrieţi un program care, cunoscând graful, rezolvă următoarele două cerinţe:
1. determină costul unui arbore parțial de cost minim al lui G;
2. determină numărul de muchii esențiale ale grafului G.
OMI 2026, clasele 11-12
| Problema | esentiale | Operații I/O |
esentiale.in/esentiale.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 16 MB
|
| Id soluție | #63159074 | Utilizator | |
| Fișier | esentiale.cpp | Dimensiune | 2.33 KB |
| Data încărcării | 18 Februarie 2026, 08:39 | Scor/rezultat | Eroare de compilare |
esentiale.cpp: In function 'void unionSets(int, int)': esentiale.cpp:37:13: error: reference to 'rank' is ambiguous if (rank[rootX] > rank[rootY]) { ^ esentiale.cpp:18:5: note: candidates are: int rank [1005] int rank[MAXN]; ^ In file included from /usr/include/c++/4.8/bits/move.h:57:0, from /usr/include/c++/4.8/bits/stl_pair.h:59, from /usr/include/c++/4.8/bits/stl_algobase.h:64, 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/ostream:38, from /usr/include/c++/4.8/iostream:39, from esentiale.cpp:1: /usr/include/c++/4.8/type_traits:1243:12: note: template<class> struct std::rank struct rank ^ esentiale.cpp:37:27: error: reference to 'rank' is ambiguous if (rank[rootX] > rank[rootY]) { ^ esentiale.cpp:18:5: note: candidates are: int rank [1005] int rank[MAXN]; ^ In file included from /usr/include/c++/4.8/bits/move.h:57:0, from /usr/include/c++/4.8/bits/stl_pair.h:59, from /usr/include/c++/4.8/bits/stl_algobase.h:64, 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/ostream:38, from /usr/include/c++/4.8/iostream:39, from esentiale.cpp:1: /usr/include/c++/4.8/type_traits:1243:12: note: template<class> struct std::rank struct rank ^ esentiale.cpp:41:17: error: reference to 'rank' is ambiguous if (rank[rootX] == rank[rootY]) { ^ esentiale.cpp:18:5: note: candidates are: int rank [1005] int rank[MAXN]; ^ In file included from /usr/include/c++/4.8/bits/move.h:57:0, from /usr/include/c++/4.8/bits/stl_pair.h:59, from /usr/include/c++/4.8/bits/stl_algobase.h:64, 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/ostream:38, from /usr/include/c++/4.8/iostream:39, from esentiale.cpp:1: /usr/include/c++/4.8/type_traits:1243:12: note: template<class> struct std::rank struct rank ^ esentiale.cpp:41:32: error: reference to 'rank' is ambiguous if (rank[rootX] == rank[rootY]) { ^ esentiale.cpp:18:5: note: candidates are: int rank [1005] int rank[MAXN]; ^ In file included from /usr/include/c++/4.8/bits/move.h:57:0, from /usr/include/c++/4.8/bits/stl_pair.h:59, from /usr/include/c++/4.8/bits/stl_algobase.h:64, 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/ostream:38, from /usr/include/c++/4.8/iostream:39, from esentiale.cpp:1: /usr/include/c++/4.8/type_traits:1243:12: note: template<class> struct std::rank struct rank ^ esentiale.cpp:42:17: error: reference to 'rank' is ambiguous rank[rootY]++; ^ esentiale.cpp:18:5: note: candidates are: int rank [1005] int rank[MAXN]; ^ In file included from /usr/include/c++/4.8/bits/move.h:57:0, from /usr/include/c++/4.8/bits/stl_pair.h:59, from /usr/include/c++/4.8/bits/stl_algobase.h:64, 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/ostream:38, from /usr/include/c++/4.8/iostream:39, from esentiale.cpp:1: /usr/include/c++/4.8/type_traits:1243:12: note: template<class> struct std::rank struct rank ^ esentiale.cpp: In function 'void kruskal()': esentiale.cpp:52:9: error: reference to 'rank' is ambiguous rank[i] = 0; ^ esentiale.cpp:18:5: note: candidates are: int rank [1005] int rank[MAXN]; ^ In file included from /usr/include/c++/4.8/bits/move.h:57:0, from /usr/include/c++/4.8/bits/stl_pair.h:59, from /usr/include/c++/4.8/bits/stl_algobase.h:64, 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/ostream:38, from /usr/include/c++/4.8/iostream:39, from esentiale.cpp:1: /usr/include/c++/4.8/type_traits:1243:12: note: template<class> struct std::rank struct rank ^ esentiale.cpp: In function 'void findEssentialEdges()': esentiale.cpp:70:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < mst.size(); i++) { ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema esentiale 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ă.