Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2009-12-22 10:31:02.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:bellmanford.in, bellmanford.outSursăArhiva Educationala
AutorArhiva EducationalaAdăugată deGavrilaVladGavrila Vlad GavrilaVlad
Timp execuţie pe test0.25 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Algoritmul Bellman-Ford

Se dă un graf orientat conex cu N noduri şi M muchii cu costuri. Definim un lanţ ca fiind un şir de noduri cu proprietatea că între oricare două noduri consecutive există o muchie. Costul unui lanţ este dat de suma costurilor muchiilor care unesc nodurile ce îl formează. Definim un ciclu ca fiind un lanţ cu proprietatea că primul element al său este egal cu ultimul.

Cerinţă

Să se determine dacă în graful dat există un ciclu de cost negativ. Dacă nu există, să se determine costul minim al unui lanţ de la nodul 1 la fiecare dintre nodurile 2, 3, ... , N-1, N.

Date de intrare

Fişierul de intrare bellmanford.in conţine pe prima linie numerele N şi $M cu semnificaţia din enunţ. Pe următoarele M linii se vor afla 3 numere A, B şi C cu semnificaţia că există o muchie de cost C de la nodul A la nodul B.

Date de ieşire

În fişierul de ieşire bellmanford.out se va afişa pe prima linie mesajul "Ciclu negativ!" dacă în graf există un astfel de ciclu sau, în caz contrar, N-1 numere separate printr-un spaţiu. Al i-lea număr va reprezenta costul minim al unui drum minim de la nodul 1 la nodul i+1.

Restricţii

  • 1 ≤ N ≤ 50 000.
  • 1 ≤ M ≤ 250 000.
  • Costurile muchiilor sunt numere întregi cel mult egale in modul cu 1 000.

Exemplu

bellmanford.inbellmanford.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?