Pagini recente » Cod sursa (job #1298994) | Cod sursa (job #2940503) | Cod sursa (job #814093) | Cod sursa (job #1539283) | Cod sursa (job #143949)
Cod sursa(job #143949)
#include<fstream>
#include<stdio.h>
using namespace std;
long c[100][100];
int N;
#define INF -1
long suma(long a,long b)
{
if(a==INF||b==INF)return INF;
return a+b;
}
long maimic(long a, long b)
{
if(a==INF)return 0;
if(b==INF)return 1;
return a<b;
}
void royfloyd()
{
int i,j,k;
for(k=0;k<N;k++)
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(maimic(suma(c[i][k],c[k][j]),c[i][j]))
c[i][j] = suma(c[i][k],c[k][j]);
}
int main()
{
ifstream f1("royfloyd.in");
ofstream f2("royfloyd.out");
int i,j;
f1>>N;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
f1>>c[i][j];
if(!c[i][j]&&i!=j)c[i][j]=INF;
}
royfloyd();
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
f2<<c[i][j]<<' ';
f2<<'\n';
}
f1.close();
f2.close();
return 0;}