Pagini recente » Cod sursa (job #801414) | Istoria paginii utilizator/uaicbalaucastirbubadita | Cod sursa (job #238468) | Cod sursa (job #415091) | Cod sursa (job #1854764)
#include <bits/stdc++.h>
#define NMAX 2001
#define INF 2000000000
using namespace std;
bool prim(int n)
{
if(n == 1 || n == 0) return 0;
if(n == 2) return 1;
if(n % 2 == 0) return 0;
for(int i = 3; i * i <= n + 1; i += 2)
if(n % i == 0) return 0;
return 1;
}
int pie(int a, int b)
{
int c;
while(b)
{
c = a % b;
a = b;
b = c;
}
return a;
}
void quik_sort(int inf, int sup, int V[])
{
int x, i, j;
i = inf;
j = sup;
x = V[(i + j) / 2];
do
{
while ((i < sup) && (V[i] < x)) i++;
while ((j > inf) &&(V[j] > x)) j--;
if ( i<= j )
{
swap(V[i], V[j]);
i++;
j--;
}
}
while ( i <= j );
if ( inf < j ) quik_sort(inf, j, V);
if ( i < sup ) quik_sort(i, sup, V);
}
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
FILE *f = fopen("f.in", "r");
FILE *g = fopen("f.out", "w");
int n, C[101][101], drum[101][101];
int main()
{
fin >> n;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
{
fin >> C[i][j];
if(C[i][j] == 0 && i != j) C[i][j] = INF;
}
for(int k = 1; k <= n; k++)
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(C[i][j] > C[i][k] + C[k][j]){
C[i][j] = C[i][k] + C[k][j];
drum[i][j] = k;
}
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
if(C[i][j] == INF) fout << 0 << ' ';
else fout << C[i][j] << ' ';
fout << '\n';
}
return 0;
}