Das nächste Krankenhaus

Es gibt n Städte, die durch m bidirektionale Straßen verbunden sind. Jede Stadt kann entweder eine normale Stadt oder eine Stadt mit einem Krankenhaus sein. Ihre Aufgabe besteht darin, für jede Stadt anhand des Straßennetzes das nächstgelegene Krankenhaus zu ermitteln.

Eingabe

Die erste Zeile enthält zwei durch Leerzeichen getrennte ganze Zahlen, n und m (). Sie geben die Anzahl der Städte bzw. die Anzahl der Straßen an.

In der zweiten Zeile stehen n durch Leerzeichen getrennte ganze Zahlen (0 oder 1). Dabei bedeutet , dass Stadt i ein Krankenhaus hat, wenn der Wert gleich 1 ist.

Die nächsten m Zeilen enthalten jeweils drei ganze Zahlen und (, ). Diese beschreiben eine bidirektionale Straße zwischen den Städten und mit der Länge .

Es ist garantiert, dass alle Städte im Straßennetz miteinander verbunden sind und mindestens eine Stadt ein Krankenhaus besitzt.

Ausgabe

Geben Sie eine einzelne Zeile mit n durch Leerzeichen getrennten ganzen Zahlen aus. Die i-te Zahl entspricht der Entfernung vom nächstgelegenen Krankenhaus zur Stadt i.

Beispiele

Eingabe

Ausgabe

5 4 0 1 0 1 0 1 2 5 1 3 2 4 5 10 4 3 6

5 0 6 0 10

Constraints

Time limit: 4 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue