Pagini recente » Monitorul de evaluare | Cod sursa (job #229920) | Cod sursa (job #1431495) | Cod sursa (job #1574546) | Cod sursa (job #570090)
Cod sursa(job #570090)
#include<cstdio>
using namespace std;
const char in[] = "royfloyd.in";
const char out[] = "royfloyd.out";
const int N_Max = 105;
int N, a[N_Max][N_Max];
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d", &N);
for(int i = 1 ; i <= N ; ++i)
for(int j = 1 ; j <= N ; ++j)
scanf("%d", &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(a[i][k] && a[k][j] && i != j && (a[i][j] > a[i][k] + a[k][j] || !a[i][j]))
a[i][j] = a[i][j], a[i][k] + a[k][j];
for(int i = 1 ; i <= N ; ++i){
for(int j = 1 ; j <= N ; ++j)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}