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).
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.