Cod sursa(job #2173083)
| Utilizator | Data | 15 martie 2018 20:25:25 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
ifstream F("royfloyd.in");
ofstream G("royfloyd.out");
int n, a[105][105];
int main()
{
F >> n;
for(int i = 1; i <= n; ++ i)
for(int j = 1; j <= n; ++ j)
F >>a[i][j];
for(int k = 1; k <= n;++k)
for(int i=1; i <= n; ++ i)
for(int j = 1; j <= n; ++ j)
if(i!=j&&(!a[i][j]||(a[i][j]>a[i][k]+a[k][j]))&&a[i][k]&&a[k][j])
a[i][j]=a[i][k]+a[k][j];
for(int i = 1; i <= n; ++ i, G<<'\n')
for(int j = 1; j <= n; ++ j)
G<<a[i][j]<< " ";
return 0;
}
