QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 64 MB مجموع النقاط: 100

#23772. Schiffsreise

الإحصائيات

Aufgabe

Im Land JOI gibt es $n$ Inseln, die von $1$ bis $n$ nummeriert sind. Derzeit wird im Land JOI das Liniennetz für Schiffe zwischen den einzelnen Inseln ausgebaut.

Sie arbeiten in einem Ticketcenter, das Schiffsfahrkarten verkauft. Im Land JOI gibt es viele Menschen, die so kostengünstig wie möglich mit dem Schiff von Insel zu Insel reisen möchten; sie tragen ihren Startort und ihren Zielort in ein Bestellformular ein und senden es Ihnen zu.

Ihre Aufgabe ist es, sofort nach Erhalt eines Bestellformulars von einem Kunden unter allen Verbindungen, die Startort und Zielort durch Umsteigen zwischen mehreren Schiffen verbinden, den günstigsten Fahrpreis zu berechnen und dem Kunden mitzuteilen. Je nach Reiseroute kann es jedoch vorkommen, dass eine Reise mit dem Schiff nicht möglich ist. In diesem Fall müssen Sie dem Kunden mitteilen, dass „eine Reise mit dem Schiff nicht möglich ist“. Außerdem nehmen im Land JOI nach und nach neue Schiffe den Betrieb zwischen den Inseln auf, worüber Sie laufend informiert werden. Wenn Sie den Kunden antworten, müssen Sie stets die neuesten Informationen berücksichtigen.

Schreiben Sie ein Programm, das bei Eingabe der Bestellformulare der Kunden sowie der Betriebsinformationen neu eingesetzter Schiffe die Antworten an die Kunden berechnet.

Eingabe

In der $1$. Zeile der Eingabe stehen $2$ ganze Zahlen $n, k$ ($1 \le n \le 100, 1 \le k \le 5000$). Dies bedeutet, dass es $n$ Inseln gibt und die Eingabe aus $k + 1$ Zeilen besteht. In der $(i + 1)$. Zeile ($1 \le i \le k$) stehen durch Leerzeichen getrennt $3$ oder $4$ ganze Zahlen.

  • Wenn die erste Zahl $0$ ist, stellt diese Zeile das Bestellformular eines Kunden dar. In dieser Zeile stehen durch Leerzeichen getrennt $3$ ganze Zahlen $0, a, b$ ($1 \le a \le n, 1 \le b \le n, a \ne b$). Dies bedeutet, dass ein Kunde ein Bestellformular mit Insel $a$ als Startort und Insel $b$ als Zielort geschickt hat.
  • Wenn die erste Zahl $1$ ist, stellt diese Zeile die Betriebsinformation eines neu in Betrieb genommenen Schiffes dar. In dieser Zeile stehen $4$ ganze Zahlen $1, c, d, e$ ($1 \le c \le n, 1 \le d \le n, c \ne d, 1 \le e \le 1000000$). Dies bedeutet, dass ein Schiff, das zwischen Insel $c$ und Insel $d$ pendelt, neu den Betrieb aufgenommen hat und der Fahrpreis dieses Schiffes sowohl von Insel $c$ nach Insel $d$ als auch von Insel $d$ nach Insel $c$ jeweils $e$ beträgt. Für alle nachfolgenden Bestellformulare muss dieses Schiff bei der Antwort mitberücksichtigt werden.

Zu Beginn sind $0$ Schiffe in Betrieb. Unter den Eingabezeilen gibt es höchstens $1000$ Zeilen, die Betriebsinformationen von Schiffen darstellen. Beachten Sie außerdem, dass zwischen zwei Inseln auch mehrere Schiffe verkehren können.

Ausgabe

Sei $m$ die Anzahl der Zeilen in der Eingabe, die Bestellformulare darstellen. Die Ausgabe besteht aus $m$ Zeilen; schreiben Sie in die $i$. Zeile ($1 \le i \le m$) eine ganze Zahl, die die Antwort auf das $i$. Bestellformular darstellt. Das heißt: Wenn es möglich ist, zwischen Startort und Zielort des $i$. Bestellformulars durch Umsteigen zwischen mehreren Schiffen zu reisen, geben Sie die minimale Summe der Fahrpreise aus. Wenn eine Reise unmöglich ist, geben Sie $-1$ aus.

Ein- und Ausgabebeispiele

Eingabebeispiel 1

3 8
1 3 1 10
0 2 3
1 2 3 20
1 1 2 5
0 3 2
1 1 3 7
1 2 1 9
0 2 3

Ausgabebeispiel 1

-1
15
12

Eingabebeispiel 2

5 16
1 1 2 343750
1 1 3 3343
1 1 4 347392
1 1 5 5497
1 2 3 123394
1 2 4 545492
1 2 5 458
1 3 4 343983
1 3 5 843468
1 4 5 15934
0 2 1
0 4 1
0 3 2
0 4 2
0 4 3
0 5 3

Ausgabebeispiel 2

5955
21431
9298
16392
24774
8840

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.