Pagini recente » Cod sursa (job #2768283) | Cod sursa (job #2897206) | Cod sursa (job #3246097) | Cod sursa (job #888089) | Cod sursa (job #655390)
Cod sursa(job #655390)
#include <cstdio>
#include <cstring>
#define file_in "royfloyd.in"
#define file_out "royfloyd.out"
#define nmax 111
int N,M;
int d[nmax];
int x[nmax*nmax];
int y[nmax*nmax];
int z[nmax*nmax];
int c,viz[nmax];
int i,j,nod;
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d", &N);
M=0;
for (i=1;i<=N;++i)
for (j=1;j<=N;++j){
scanf("%d", &c);
//muchia i->j cu costu c
if (i!=j){
x[++M]=i;
y[M]=j;
z[M]=c;
}
}
for (nod=1;nod<=N;++nod){
for (i=1;i<=N;++i) viz[i]=0;
for (i=1;i<=N;++i) d[i]=0x3f3f3f3f;
d[nod]=0;
int ok=0;
while(!ok){
ok=1;
for (i=1;i<=M;++i)
if (d[y[i]]>d[x[i]]+z[i])
d[y[i]]=d[x[i]]+z[i],
ok=0;
}
for (i=1;i<=N;++i)
if (d[i]==0x3f3f3f3f)
d[i]=0;
for (i=1;i<=N;++i)
printf("%d ", d[i]);
printf("\n");
}
return 0;
}