#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 | #64100254 | Utilizator | |
| Fișier | esentiale.cpp | Dimensiune | 2.13 KB |
| Data încărcării | 16 Aprilie 2026, 22:42 | Scor/rezultat | 41 puncte |
esentiale.cpp: In function ‘void kruskal()’: esentiale.cpp:51:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::tuple<int, int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 51 | while(i < edges.size()){ | ~~^~~~~~~~~~~~~~ esentiale.cpp:54:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::tuple<int, int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 54 | while(j < edges.size() && get<0>(edges[j]) == cost_curent){ | ~~^~~~~~~~~~~~~~ esentiale.cpp:65:19: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions] 65 | for(auto& [pereche, cnt] : frec) | ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0.001 secunde | OK. | 4 | 4 | ||
| 1 | 0.001 secunde | Raspuns gresit. | 5 | 0 | ||
| 2 | 0.001 secunde | OK. | 6 | 6 | ||
| 3 | 0.001 secunde | OK. | 5 | 5 | ||
| 4 | 0.001 secunde | Raspuns gresit. | 6 | 0 | ||
| 5 | 0.001 secunde | OK. | 8 | 8 | ||
| 6 | 0.001 secunde | Raspuns gresit. | 7 | 0 | ||
| 7 | 0.001 secunde | Raspuns gresit. | 6 | 0 | ||
| 8 | 0.001 secunde | OK. | 7 | 7 | ||
| 9 | 0.003 secunde | Raspuns gresit. | 7 | 0 | ||
| 10 | 0.006 secunde | Raspuns gresit. | 8 | 0 | ||
| 11 | 0.012 secunde | Raspuns gresit. | 3 | 0 | ||
| 12 | 0.023 secunde | Raspuns gresit. | 4 | 0 | ||
| 13 | 0.029 secunde | Raspuns gresit. | 8 | 0 | ||
| 14 | 0.029 secunde | OK. | 6 | 6 | ||
| 15 | 0.001 secunde | OK. | 5 | 5 | Exemplu | |
| 16 | 0.001 secunde | Raspuns gresit. | 5 | 0 | Exemplu | |
| Punctaj total | 41 | |||||
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ă.