Cod sursa(job #256155)
| Utilizator | Data | 11 februarie 2009 11:50:31 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <iostream>
using namespace std;
#define nmax 100
int N, A[nmax][nmax];
int main ()
{
freopen ("royfloyd.in", "r", stdin);
freopen ("royfloyd.out", "w", stdout);
cin>>N;
for (int i=0; i<N; ++i)
for (int j=0; j<N; ++j)
cin>>A[i][j];
for (int k=0; k<N; ++k)
for (int i=0; i<N; ++i)
for (int j=0; j<N; ++j)
if (A[i][k]+A[k][j]<A[i][j])
A[i][j]=A[i][k]+A[k][j];
for (int i=0; i<N; ++i)
{
for (int j=0; j<N; ++j)
cout << A[i][j]<<' ';
cout<<'\n';
}
return 0;
}
