Cod sursa(job #1597688)

Utilizator otnielborosBoros Otniel otnielboros Data 12 februarie 2016 11:22:09
Problema Floyd-Warshall/Roy-Floyd Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>

using namespace std;
int N , A[100][100];
void citire()
{
    ifstream fin("royfloyd.in");
    int i,j;
    fin>>N;
    for(i=1;i<=N;i++)
      for(j=1;j<=N;j++)
        fin>>A[i][j];

}
void Roy_Varshall()
{
    int i,j,k;
    for(k=1;k<=N;k++)
      for(i=1;i<=N;i++)
        for(j=1;j<=N;j++)
            if (A[i][k] && A[k][j] && (A[i][j] > A[i][k] + A[k][j]) && i != j)
                A[i][j] = A[i][k] + A[k][j];
}
void afis()
{
    ofstream fout("royfloyd.out");
    int i,j;
    for(i=1;i<=N;i++)
      {
        for(j=1;j<=N;j++)
            fout<<A[i][j]<<" ";
        fout<<endl;
      }
}
int main()
{
   citire();
   Roy_Varshall();
   afis();
    return 0;
}