Pagini recente » Cod sursa (job #404818) | Cod sursa (job #1566278) | Cod sursa (job #280037) | Monitorul de evaluare | Cod sursa (job #484670)
Cod sursa(job #484670)
#include <cstdio>
#include <algorithm>
using namespace std;
int main(){
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
int N;
scanf("%d",&N);
int M[N][N];
for(int i = 0;i<N;++i)
for(int j = 0;j<N;++j)
scanf("%d",&M[i][j]);
for(int k = 0;k<N;++k)
for(int i = 0;i<N;++i)
for(int j = 0;j<N;++j)
if(i!=j && M[i][k]!=0 && M[k][j]!=0)
M[i][j] = (M[i][j]!=0? min(M[i][j],M[i][k]+M[k][j]) : M[i][k]+M[k][j]);
for(int i = 0;i<N;++i){
for(int j = 0;j<N;++j)
printf("%d ",M[i][j]);
printf("\n");
}
return 0;
}