Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | royfloyd.in, royfloyd.out | Sursă | ad-hoc |
Autor | Arhiva Educationala | Adăugată de | |
Timp execuţie pe test | 0.025 sec | Limită de memorie | 4736 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Floyd-Warshall/Roy-Floyd
Se da un graf orientat cu N noduri, memorat prin matricea ponderilor.
Cerinta
Sa se determine pentru orice pereche de noduri x si y lungimea minima a drumului de la nodul x la nodul y si sa se afiseze matricea drumurilor minime. Prin lungimea unui drum intelegem suma costurilor arcelor care-l alcatuiesc.
Date de intrare
Fisierul de intrare royfloyd.in contine pe prima linie N, numarul de noduri al grafului, iar urmatoarele N linii contin cate N valori reprezentand matricea ponderilor.
Date de iesire
In fisierul de iesire royfloyd.out se vor afisa N linii a cate N valori, reprezentand matricea drumurilor minime.
Restrictii
- 1 ≤ N ≤ 100
- Numerele din fisierul de intrare nu vor depasi valoarea 1 000.
- Daca nu exista muchie intre o pereche de noduri x si y, in fisierul de intrare va figura cifra 0 ca fiind distanta de la nodul x la nodul y.
- Daca dupa aplicarea algoritmului nu se gaseste un drum intre o pereche de noduri x si y, se va considera ca distanta intre cele doua noduri este 0.
Exemplu
royfloyd.in | royfloyd.out |
---|---|
5 0 3 9 8 3 5 0 1 4 2 6 6 0 4 5 2 9 2 0 7 7 9 3 2 0 | 0 3 4 5 3 5 0 1 4 2 6 6 0 4 5 2 5 2 0 5 4 7 3 2 0 |
Indicatii de rezolvare
Algoritmul are complexitatea O(N^3) si este explicat atat pe wikipedia cat si in cartea Introducere in algoritmi, Thomas Cormen, editura Agora, Cluj-Napoca. Sursa de 100 de puncte se gaseste aici .