Cod sursa(job #1778122)
Utilizator | Data | 13 octombrie 2016 15:16:25 | |
---|---|---|---|
Problema | Floyd-Warshall/Roy-Floyd | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <iostream>
#include<fstream>
using namespace std;
int n,i,j,k,d[101][101];
int main()
{
ifstream f("royfloyd.in");
f>>n;for(i=0;i<n;++i)for(j=0;j<n;++j)f>>d[i+1][j+1];
f.close();
for(k=0;k<n;++k)
{
for(i=0;i<n;++i)
for(j=0;j<n;++j)
{
if((d[i+1][j+1]>d[i+1][k+1]+d[k+1][j+1])&&d[i+1][k+1]&&d[k+1][j+1])
{
d[i+1][j+1]=d[i+1][k+1]+d[k+1][j+1];
}
}
}
ofstream g("royfloyd.out");
for(i=0;i<n;++i)
{
for(j=0;j<n;++j)g<<d[i+1][j+1]<<" ";
g<<'\n';
}
g.close();
return 0;
}