QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 128 MB Total points: 100

#1938. Bałagan w sieci

Statistics

Gilbert jest administratorem sieci w firmie Ginkgo. Jego szefa złości bałagan w kablach sieciowych na podłodze. W końcu podszedł do Gilbert i poprosił leniwego administratora o przedstawienie połączeń komputerów i przełączników. Ponieważ Gilbert jest programistą, bardzo niechętnie chodzi po biurze i ogląda kable oraz przełączniki. Postanowił więc wykonać zadanie za pomocą pomiarów i odrobiny matematycznego myślenia, cały czas siedząc przed komputerem. Twoim zadaniem jest pomóc mu, pisząc program odtwarzający topologię sieci z pomiarów.

Liczba komputerów jest znana, a liczba przełączników nieznana. Każdy komputer jest połączony kablem z jednym przełącznikiem i z niczym innym. W szczególności komputery nigdy nie łączą się bezpośrednio ze sobą, a jeden komputer nie łączy się z dwoma lub więcej przełącznikami. Przełączniki są połączone kablami i tworzą drzewo (spójny graf nieskierowany bez cykli). Żaden przełącznik nie jest bezużyteczny: każdy znajduje się na ścieżce między co najmniej jedną parą komputerów.

Łącznie komputery i przełączniki tworzą drzewo, którego liśćmi są komputery, a wierzchołkami wewnętrznymi przełączniki (patrz rysunek 9).

Gilbert mierzy odległości między wszystkimi parami komputerów. Odległość dwóch komputerów to po prostu liczba przełączników na ścieżce między nimi plus 1. Równoważnie, jest to liczba kabli służących do ich połączenia. Możesz się zastanawiać, jak Gilbert uzyskuje te odległości wyłącznie z pomiarów. Potrafi to dzięki bardzo zaawansowanej technice przetwarzania statystycznego, którą wynalazł. Prosimy nie pytać o szczegóły.

Dostajesz zatem macierz opisującą odległości między liśćmi drzewa. Twoim zadaniem jest odtworzyć z niej drzewo.

Wejście

Wejście to ciąg macierzy odległości, po którym następuje wiersz zawierający pojedyncze 0. Każda macierz ma następujący format.

$$N$$

$$\begin{pmatrix}a_{11}&a_{12}&\cdots&a_{1N}\\a_{21}&a_{22}&\cdots&a_{2N}\\\vdots&\vdots&\ddots&\vdots\\a_{N1}&a_{N2}&\cdots&a_{NN}\end{pmatrix}$$

problem_1938_389a70f0bb8f45a9b0a7d7bcb0317565.png

Rysunek 9: Komputery i przełączniki

$N$ jest rozmiarem macierzy, czyli liczbą wierszy i kolumn. $a_{ij}$ podaje odległość między $i$-tym liściem (komputerem) a $j$-tym. Możesz założyć, że $2 \le N \le 50$, a macierz jest symetryczna i ma same zera na przekątnej. Zatem $a_{ii}=0$ i $a_{ij}=a_{ji}$ dla każdego $i,j$. Każdy element poza przekątną $a_{ij}$ ($i\ne j$) spełnia $2 \le a_{ij} \le 30$. Możesz założyć, że rozwiązanie zawsze istnieje, czyli istnieje drzewo o podanych odległościach między liśćmi.

Wyjście

Dla każdej macierzy znajdź drzewo o podanych odległościach między liśćmi. Następnie wypisz stopień każdego wierzchołka wewnętrznego (czyli liczbę kabli przylegających do każdego przełącznika), wszystkie w jednym wierszu i w kolejności rosnącej. Liczby w wierszu należy rozdzielać pojedynczą spacją. Wiersz nie może zawierać żadnych innych znaków, w tym końcowych spacji.

Przykład

Wejście 1

4
    0   2   2   2
    2   0   2   2
    2   2   0   2
    2   2   2   0
4
    0   2   4   4
    2   0   4   4
    4   4   0   2
    4   4   2   0
2
     0 12
    12 0
0

Wyjście 1

4
2 3 3
2 2 2 2 2 2 2 2 2 2 2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.