QOJ.ac

QOJ

Time Limit: 3.0 s Memory Limit: 256 MB Total points: 100

#20001. Potentialtopf

Statistics

Der Milliardär Christian hat heute den Dijkstra-Algorithmus mit Johnson-Potentialen kennengelernt. Er war so begeistert, dass er all seinen Lieblingsgraphen Potentiale hinzufügen möchte. Christians Geschmack ist sehr eigenwillig: In seinem geheimen Zimmer bewahrt er nur gerichtete gewichtete Graphen auf.

Erinnern wir uns an die Funktionsweise von Potentialen. Jedem Knoten $v$ wird ein Potential zugewiesen: eine reelle Zahl $\varphi(v)$. Gab es eine Kante von $u$ nach $v$ mit ursprünglichem Gewicht $w$, so ist ihr neues Gewicht $w'=w-\varphi(v)+\varphi(u)$.

Die Stärke eines Graphen ist als das Minimum seiner Kantengewichte definiert. Christian möchte keine schwachen Graphen in seinem Zimmer haben. Daher möchte er die Potentiale so wählen, dass die Stärke des Graphen maximiert wird. Hilf ihm dabei.

Eingabe

Die erste Zeile enthält zwei ganze Zahlen $n$ ($2\le n\le1000$) und $m$ ($1\le m\le100\,000$), die Anzahl der Knoten und Kanten in Christians Lieblingsgraphen. Jede der folgenden $m$ Zeilen enthält drei ganze Zahlen $u_i,v_i,w_i$, die eine Kante beschreiben: ihren Startknoten, Endknoten und ihr Gewicht, in dieser Reihenfolge ($1\le u_i,v_i\le n$, $|w_i|\le10^6$).

Ausgabe

Die erste Zeile muss die größtmögliche Stärke des Graphen enthalten. Falls die Antwort beliebig groß werden kann, gib stattdessen die Zeichenfolge „+inf“ aus.

Ist die Antwort endlich, muss die zweite Zeile $n$ reelle Zahlen enthalten: die Potentiale der Knoten. Ihr Betrag darf jeweils $10^{10}$ nicht überschreiten. Deine Antwort darf sowohl von der korrekten Antwort als auch von der aus deinen Potentialen berechneten Antwort um höchstens $10^{-5}$ abweichen.

Beispiele

Eingabe 1

3 3
1 2 1
2 3 1
3 1 1

Ausgabe 1

1.0
0.0 0.0 0.0

Eingabe 2

2 1
1 2 1

Ausgabe 2

+inf

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.