Lazy Walks

Zwei Freunde achten sehr auf ihren Energieverbrauch und haben berechnet, wie viel Energie sie jeweils beim Gehen von einem Ort zum nächsten verbrauchen. Einer der beiden benötigt dafür A Energie, während der andere B Energie aufwendet.

Allerdings gibt es einen Trick: Wenn sich beide am selben Ort befinden, kann einer den anderen tragen und dabei C Energie verbrauchen, anstatt dass jeder für sich läuft und zusammen A + B aufwenden würde. Es ist wichtig zu beachten, dass C nicht unbedingt immer kleiner als A + B ist. Das bedeutet, dass das Tragen des anderen nicht in jedem Fall die energieeffizientere Option darstellt.

Der erste Freund startet an Ort 1, während der zweite Freund an Ort 2 beginnt. Beide sollen den Ort n erreichen und dabei insgesamt möglichst wenig Energie verbrauchen. Kannst du helfen, die minimale Gesamtenergiemenge zu ermitteln, die notwendig ist, damit beide den Ort n erreichen?

Eingabe

Die erste Zeile der Eingabe enthält 3 ganze Zahlen A, B und C (1 ≤ A, B, C ≤ 50 000).

Die nächste Zeile enthält 2 ganze Zahlen n und e (1 ≤ n, e ≤ 100 000), also die Anzahl der Orte und die Anzahl der Verbindungen.

Die darauffolgenden e Zeilen enthalten die Verbindungen zwischen den Orten. Jede Verbindung wird durch ein Paar ganzzahliger Werte und (1 ≤ ≤ n) beschrieben, die bedeuten, dass die beiden Orte direkt miteinander verbunden sind.

Ausgabe

Das Programm soll die minimal erforderliche Gesamtenergiemenge ausgeben, damit beide den n-ten Ort erreichen können.

Beispiele

Eingabe

Ausgabe

4 4 5
8 8
1 4
2 3
3 4
4 7
2 5
5 6
6 8
7 8

22

Erklärung

Freund 1: 1 → 4 ⇒ 4

Freund 2: 2 → 3 → 4 ⇒ 8

Zusammen: 4 → 7 → 8 ⇒ 10

Insgesamt: 4 + 8 + 10 = 22

Constraints

Time limit: 5 seconds

Memory limit: 512 MB

Output limit: 1 MB

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