Cod sursa(job #1125522)

Utilizator alexmarMarinescu Alexandru alexmar Data 26 februarie 2014 18:10:04
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include<fstream>
using namespace std;

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n,a[101][101],i,k,j;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)for(j=1;j<=n;j++)fin>>a[i][j];
    int ok=1;
    while(ok){
          ok=0;
          for(i=1;i<=n;i++)for(j=1;j<=n;j++)for(k=1;k<=n;k++)
            if(a[i][j]&&a[j][k]&&i!=j&&i!=k)
                if(a[i][j]+a[j][k]<a[i][k]||!a[i][k]){a[i][k]=a[i][j]+a[j][k];ok=1;}
          }
    for(i=1;i<=n;i++){for(j=1;j<=n;j++)fout<<a[i][j]<<" ";fout<<"\n";}
    return 0;
}