Pagini recente » Cod sursa (job #1422776) | Cod sursa (job #467318) | Cod sursa (job #2612763) | Cod sursa (job #627120) | Cod sursa (job #901215)
Cod sursa(job #901215)
#include<fstream>
#define nmax 101
#define inf 1<<30
using namespace std;
int A[nmax][nmax],N;
void citeste()
{
ifstream f("royfloyd.in");
int i,j;
f>>N;
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
{f>>A[i][j];
}
f.close();
}
void royfloyd()
{
int i,j,k;
for(k=1;k<=N;k++)
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
if(i!=j && A[i][k] && A[k][j])
if(A[i][j]>A[i][k]+A[k][j] || !A[i][j])
A[i][j]=A[i][k]+A[k][j];
}
void rezolva()
{
royfloyd();
}
void scrie()
{
ofstream g("royfloyd.out");
int i,j;
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
if(A[i][j]>=inf)
g<<0<<' ';
else
g<<A[i][j]<<' ';
g<<'\n';
}
g.close();
}
int main()
{
citeste();
rezolva();
scrie();
return 0;
}