Prisonbreak

Time limit: 1s Memory limit: 512MB Input: prisonbreak.in Output: prisonbreak.out

Pia și Mițuca au ajuns la închisoare după ce au furat 10 conserve cu ton și au ucis 7 muște cu premeditare. Acum, închise departe de cele mai pufoase și călduroase loculețe de dormit, au decis să evadeze.

Închisoarea este sub forma unui graf neorientat cu NN noduri și MM muchii. Pia și Mițuca se află în nodul 11, iar scopul lor este să ajungă în nodul NN pentru a evada. Fiecare nod are o culoare reprezentată printr-un număr natural, exceptând nodurile 11 și NN, care sunt necolorate.

Fiecare muchie a grafului are un cost de bobițe pe care protagonistele trebuie să îl plătească pentru a parcurge muchia respectivă.

Din păcate, nodurile sunt camere securizate digital pentru a preveni evadarea criminalilor periculoși. Singura metodă de a intra într-o astfel de cameră fără să sune alarma este prin dezactivarea senzorilor de protecție. Pentru aceasta, este nevoie de o cheie magnetică care să aibă aceeași culoare cu cea a camerei în care se intră. Din fericire, Pia și Mițuca se află în camera 11, unde se găsesc chei magnetice de toate culorile posibile. Totuși, acestea fiind foarte greu de cărat, fiecare pisicuță poate să pornească la drum cu maxim o astfel de cheie. Prin urmare, fiind o echipă, pisicile pot porni la drum cu maxim 22 culori distincte, pe care o să le numim culorile AA și BB. Având aceste 22 chei cu culorile AA și BB, pisicuțele pot parcurge doar noduri care au culoarea AA sau culoarea BB (nodurile unde pot dezactiva senzorii de protecție).

În plus, acestea au primit un mesaj telepatic de la Tomiță, un motănel periculos. Tomiță le-a spus că a analizat închisoarea și a realizat că nu există o componentă conexă de noduri de aceeași culoare care să fie mai mare de 5050 de noduri.

Cerință

Deoarece Pia și Mițuca vor să rămână cu cât mai multe bobițe la final, aflați costul minim de bobițe pe care trebuie să îl plătească pentru a ajunge din nodul 11 în nodul NN știind că pot parcurge maxim 22 culori diferite. Se cere, de asemenea, numărul de drumuri de cost minim între nodul 11 și nodul NN în condițiile date, modulo 666 013666 \ 013, și un exemplu de astfel de drum de cost minim.

Date de intrare

Fișierul de intrare prisonbreak.in conține pe prima linie două numere naturale NN și MM, reprezentând numărul de noduri din graf, respectiv numărul de muchii din graf. Următoarea linie conține N2N - 2 valori reprezentând culorile nodurilor numerotate de la 22 la N1N - 1. Începând cu linia 33, pe următoarele MM linii se află câte 33 numere naturale A,B,CA, B, C reprezentând faptul că există o muchie neorientată între nodul AA și nodul BB, iar costul de parcurgere a muchiei este CC.

Date de ieșire

Fișierul de ieșire prisonbreak.out trebuie să conțină pe prima linie costul minim de a ajunge din nodul 11 în nodul NN în condițiile menționate în enunț. Pe a doua linie va conține numărul de drumuri distincte, KK, cu acest cost, care respectă condițiile din enunț, modulo 666 013666 \ 013}. Urmează două linii ce reprezintă un exemplu de drum parcurs dintre aceste KK. Dacă există mai multe, se poate afișa oricare. Linia a 33-a din fișier va conține un număr natural PP reprezentând numărul de noduri parcurse în drumul ales. Pe linia a 44-a se vor afișa PP numere naturale reprezentând nodurile parcurse de cele 22 pisicuțe pe drumul ales.

Restricții și precizări

  • 4N50 0004 \leq N \leq 50 \ 000;
  • 4M200 0004 \leq M \leq 200 \ 000;
  • 11 \leq culorile nodurilor N\leq N;
  • 11 \leq costurile muchiilor 1 000 000 000\leq 1 \ 000 \ 000 \ 000;
  • Se garantează că între oricare două noduri distincte există cel mult o muchie;
  • Se garantează că există cel puțin un drum de la nodul 11 la nodul NN folosind cel mult două culori.
  • 40%40\% din punctaj se va acorda pentru determinarea costului minim al drumului;
  • 40%40\% din punctaj se va acorda pentru determinarea numărului de drumuri de cost minim;
  • 20%20\% din punctaj se va acorda pentru reconstituirea unui drum de cost minim.
# Scor Restricții
1 3 N1000,M20 000N \leq 1000, M \leq 20 \ 000, exista maxim 2 culori distincte in graf
2 4 N4000,M100 000N \leq 4000, M \leq 100 \ 000, exista maxim 2 culori distincte in graf
3 5 N50000,M200 000N \leq 50000, M \leq 200 \ 000, exista maxim 2 culori distincte in graf
4 4 N30,M300N \leq 30, M \leq 300
5 5 N60,M1 000N \leq 60, M \leq 1 \ 000
6 28 N500,M2 000N \leq 500, M \leq 2 \ 000
7 18 Nu există muchii între noduri de aceeași culoare.
8 33 Fără restricții suplimentare

Exemplul

prisonbreak.in

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

prisonbreak.out

21
1
5
1 2 4 6 7

Explicație

Avem 77 noduri, dintre care nodurile 11 și 77 sunt necolorate, iar celelalte norduri sunt colorate astfel:

  • Nodul 22 are culoarea 11;
  • Nodul 33 are culoarea 22;
  • Nodul 44 are culoarea 33;
  • Nodul 55 are culoarea 22;
  • Nodul 66 are culoarea 11.

Drumul de cost minim de la nodul 11 la nodul 77 este obținut prin folosirea culorilor 11 și 33, trecând în ordine prin nodurile 1,2,4,6,71, 2, 4, 6, 7 și având costul total 10+5+4+2=2110 + 5 + 4 + 2 = 21. Un alt drum, folosind culorile 22 și 33, trece prin nodurile 1,3,4,5,71, 3, 4, 5, 7 și are costul 7+8+3+5=237 + 8 + 3 + 5 = 23, care nu este minim. Deci, numărul de drumuri de cost minim este 1.

Log in or sign up to be able to send submissions!