Cod sursa(job #955135)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 30 mai 2013 22:06:26
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>

using namespace std;

int main()
{
    ifstream cin("royfloyd.in");
    ofstream cout("royfloyd.out");

    int dist[101][101],i,j,k,n;
    cin>>n;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            cin>>dist[i][j];

    for(k=0;k<n;k++)
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                if((dist[i][k]!=0) && (dist[k][j]!=0))
                {
                    if(i==j)
                        continue;
                    if(dist[i][j]==0)
                        dist[i][j]=dist[i][k]+dist[k][j];
                    else
                        dist[i][j]=min(dist[i][k]+dist[k][j],dist[i][j]);
                }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            cout<<dist[i][j]<<' ';
        cout<<'\n';
    }
    cin.close();
    cout.close();
    return 0;
}