Koleje
Limit pamięci: 32 MB
Bajtockie Koleje Państwowe (BKP) stanęły przed koniecznością
restrukturyzacji i redukcji sieci linii kolejowych.
Po dokładnym przeanalizowaniu sieci linii kolejowych zdecydowano, które
stacje kolejowe mają być zlikwidowane, a które mają pozostać.
Zdecydowano się także maksymalnie zredukować sieć linii kolejowych.
Trzeba jeszcze wybrać, które linie kolejowe mają być zlikwidowane,
a które mają pozostać.
Sieć linii kolejowych składa się z odcinków torów łączących
stacje kolejowe.
Wiadomo, że z każdej stacji kolejowej da się dojechać do każdej innej
stacji kolejowej (potencjalnie odwiedzając stacje pośrednie).
Odcinki torów są dwukierunkowe.
Między każdą parą stacji może być co najwyżej jeden odcinek torów.
Każdy taki odcinek torów charakteryzuje się kosztem utrzymania,
dodatnią liczbą całkowitą.
Odcinki torów, które mają pozostać, muszą być tak wybrane aby:
-
dało się przejechać między każdymi dwiema stacjami, które mają
pozostać,
-
ich sumaryczny koszt utrzymania był mały (może być co najwyżej
dwukrotnie większy od najmniejszego kosztu, jaki da się uzyskać
zachowując poprzedni warunek).
Wszystkie pozostałe odcinki torów zostaną zlikwidowane.
Linie kolejowe, które mają pozostać, mogą przebiegać przez
stacje, które zostaną zlikwidowane.
Zadanie
Napisz program, który:
-
wczyta ze standardowego wejścia opis sieci linii kolejowych
oraz stacje, które mają pozostać,
-
wyznaczy, które odcinki torów mają pozostać, a które mają być
zlikwidowane,
-
wypisze na standardowe wyjście, które odcinki torów mają pozostać
oraz poda ich sumaryczny koszt utrzymania.
Wejście
W pierwszym wierszu standardowego wejścia zapisane są dwie
dodatnie liczby całkowite i ,
,
(),
oddzielone pojedynczym odstępem.
Liczba to liczba stacji kolejowych, a - liczba
odcinków torów.
Stacje kolejowe są ponumerowane od do .
W kolejnych wierszach są opisane odcinki torów kolejowych,
po jednym w wierszu.
W każdym z tych wierszy są zapisane po trzy dodatnie liczby całkowite
, i , , , .
Liczby i to numery stacji, które łączy dany odcinek torów,
a to jego koszt utrzymania.
W wierszu zapisany jest ciąg liczb całkowitych pooddzielanych
pojedynczymi odstępami.
Pierwsza z nich to - liczba stacji, które mają pozostać (,
).
Dalej w tym wierszu wymienione są numery tych stacji w kolejności
rosnącej.
Wyjście
W pierwszym wierszu standardowego wyjścia program powinien wypisać dwie
liczby całkowite i oddzielone spacją, gdzie jest sumarycznym
kosztem utrzymania pozostawionych odcinków, a - liczbą tych odcinków.
W każdym z kolejnych wierszy powinny znaleźć się dwie liczby oraz
, oddzielone spacją - numery stacji, które łączą pozostawione odcinki
torów. Sumaryczny koszt utrzymania odcinków torów może być co najwyżej
dwukrotnie większy od najmniejszego kosztu, możliwego do uzyskania.
Przykład
Dla danych wejściowych:
8 11
1 2 6
3 1 5
2 3 8
3 4 9
3 5 10
5 4 3
5 6 9
6 4 8
6 8 8
6 7 7
8 7 10
4 2 5 7 8
poprawną odpowiedzią jest:
42 5
2 3
3 5
5 6
6 7
6 8
Autor zadania: Marcin Kubica.