Clasa a XII-a
Ziua 2
Problema 3

Drum cat mai lung

Doi indragostiti se afla intr-un oras k si au la dispozitie p ore (p<=150), timp in care sa se plimbe cu masina si apoi sa ajunga fiecare la destinatie, fata in orasul i iar baiatul in orasul j. Ei doresc sa se plimbe cat mai mult timp impreuna dar sa ajunga in maxim p ore, fiecare in orasul sau
. Deplasarea cu masina pe sosele se face cu viteza constanta.
Ei au o dispozitie o harta cu n orase (3<=n<=200) intre care se afla orasul de plecare k si orasele destinatie i si j.
Harta indica modul in care sunt conectate orasele si durata exprimata in ore, a parcurgerii fiecarei sosele.
Sa se determine traseul pe care il vor parcurge cei doi indragostiti, astfel incat timpul petrecut impreuna sa fie maxim si sa ajunga amandoi la propria destinatie in cel mult p ore de la plecare.
Observatii:
- Cronometrarea duratei drumului se face incepand cu momentul 0 din orasul k de plecare.
- In orice oras unul dintre ei poate lua un taxi, cu care unul dintre ei sa-si continue drumul separat. Despartirea nu necesita timp suplimentar.
- Pe fiecare sosea se circula in ambele sensuri.
- Nu se stationeaza nici un moment din momentul 0 al plecarii.
- Nu sunt permise intoarceri pe soseaua dintre doua orase.

Datele de intrare se gasesc in fisierul input.txt sub forma urmatoare:
n m //doua numere despartite printr-un spatiu reprezentand numarul n de orase aflate pe harta si numarul m de sosele ce leaga orasele de pe harta
k p //doua numere despartite printr-un spatiu reprezentand numarul de ordine al orasului de plecare si numarul natural p de ore pe care il au la dispozitie
i j //doua numere despartite printr-un spatiu reprezentand numerele de ordine al oraselor destinatie pentru fiecare din cei doi indragostiti
i1 j1 d1 //pe urmatoarele m linii cate trei numere naturale despartite printr-un spatiu reprezentand soseaua directa intre orasele ii si ji si durata in ore di a parcurgerii ei.
---------------------------------------------------------------------------
im jm dm

Datele de iesire vor fi scrise in fisierul output.txt si va avea doua linii ce vor contine rezultatele sub forma urmatoare:
dmax //numar natural reprezentand durata maxima exprimata in ore, in care cei doi se vor plimba impreuna
k i1...it //reprezentand orasele pe care le vor vizita impreuna, in ordine, incepand cu orasul k de plecare.
Datele vor fi despartite prin cate un spatiu.
In cazul in care solutia optima nu este unica se va afisa o singura solutie.
Datele de intrare sunt astfel concepute incat problema sa aiba solutie.

Exemplu:
Pentru fisierul de intrare input.txt:
8 9
7 8
1 2
1 3 1
3 4 1
4 2 1
4 5 1
4 6 2
5 6 3
6 8 1
7 8 1
7 6 1
Fisierul output.txt va contine:
6
7 8 6 5 4

Timp de executie: 4 secunde pe test.
Punctaj maxim posibil: 75 puncte