Cod sursa(job #1010054)
| Utilizator | Data | 14 octombrie 2013 11:07:36 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <stdio.h>
#define fr(i,a,b) for(int i=a;i<b;++i)
#define nmax 101
int n;
int t[nmax][nmax];
int main()
{
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%d",&n);
//printf("n= %d\n",n);
fr(i,0,n) fr(j,0,n) scanf("%d",&t[i][j]);
fr(k,0,n)
fr(i,0,n)
fr(j,0,n)
if(t[i][k]&&t[k][j]&&(t[i][j]>t[i][k]+t[k][j]||!t[i][j])&&i!=j) t[i][j]=t[i][k]+t[k][j];
fr(i,0,n) {fr(j,0,n) printf("%d ",t[i][j]);printf("\n");}
return 0;
}
