Cod sursa(job #2155324)

Utilizator Daniel_ApopeiDaniel Apopei Daniel_Apopei Data 7 martie 2018 19:59:20
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
const long long pInf = 10000000000;
long long n,a[105][105];
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {f>>a[i][j]; if(a[i][j]==0) a[i][j]=pInf;}
    for(int z=1;z<=n;z++)
    {
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                if(a[i][z]+a[z][j]<a[i][j])
                    a[i][j]=a[i][z]+a[z][j];
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        a[i][i]=0;
        for(int j=1;j<=n;j++)
            if(a[i][j]==pInf) a[i][j]=0;
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            g<<a[i][j]<<" ";
        g<<endl;
    }
    return 0;
}