Pagini recente » Cod sursa (job #2536583) | Cod sursa (job #1054513) | Cod sursa (job #1964121) | Cod sursa (job #1255713) | Cod sursa (job #294649)
Cod sursa(job #294649)
#include <stdio.h>
int n;
int a[101][101];
void read();
void solve();
void write();
int main()
{
read();
solve();
write();
return 0;
}
void solve()
{
int i, j, k, tmp;
for (k = 1; k <= n; ++k)
{
for (i = 1; i <= n; ++i)
{
if (a[i][k])
{
tmp = a[i][k];
for (j = 1; j <= n; ++j)
{
if (i != j && a[k][j] && (a[i][j] == 0 || a[i][j] > tmp + a[k][j]))
{
a[i][j] = tmp + a[k][j];
}
}
}
}
}
}
void write()
{
int i, j;
FILE *fout = fopen("royfloyd.out", "w");
for (i = 1; i <= n; ++i)
{
for (j = 1; j <= n; ++j)
{
fprintf(fout, "%d ", a[i][j]);
}
fprintf(fout, "\n");
}
fclose(fout);
}
void read()
{
int i, j;
FILE *fin = fopen("royfloyd.in", "r");
fscanf(fin, "%d", &n);
for (i = 1; i <= n; ++i)
{
for (j = 1; j <= n; ++j)
{
fscanf(fin, "%d", &a[i][j]);
}
}
fclose(fin);
}