Mai intai trebuie sa te autentifici.
Cod sursa(job #664581)
| Utilizator | Data | 20 ianuarie 2012 13:53:54 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
int n,cost[101][101];
int main()
{
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
fin>>n;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
fin>>cost[i][j];
}
}
for(int k=1;k<=n;++k)
{
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
if(cost[i][k]+cost[k][j]<=cost[i][j] && cost[i][k] && cost[k][j])
{
cost[i][j]=cost[i][k]+cost[k][j];
}
}
}
}
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
fout<<cost[i][j]<<' ';
}
fout<<'\n';
}
fout.close();
return 0;
}