Cod sursa(job #1533908)
| Utilizator | Data | 23 noiembrie 2015 08:17:20 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <cstdio>
using namespace std;
FILE *in,*out;
short int d[101][101];
int main()
{
in=fopen("royfloyd.in","r");
out=fopen("royfloyd.out","w");
short int i,j,n,k;
fscanf(in,"%hd",&n);
for(i=1;i<=n;++i)for(j=1;j<=n;++j)fscanf(in,"%hd",&d[i][j]);
for(k=1;k<=n;++k)
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
if(i!=k&&j!=k&&d[i][k]+d[k][j]<d[i][j])d[i][j]=d[i][k]+d[k][j];
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)fprintf(out,"%hd ",d[i][j]);
fprintf(out,"\n");
}
fclose(in);fclose(out);
return 0;
}
