Cod sursa(job #281828)

Utilizator MirceampMuresan Mircea Paul Mirceamp Data 15 martie 2009 23:24:23
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<fstream>
#define MAX 1000

using namespace std;

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

int n,a[MAX][MAX];
void read(){
     int i,j;
     fin>>n;
     for(i = 1; i <= n; i++){
           for(j = 1; j <= n; j++)
           fin>>a[i][j];
           }
fin.close();
}
void rf(){
     int i,j,k;
     for(k = 1; k <= n; k++)
           for(i = 1; i <= n; i++)
                 for(j = 1; j <= n; j++)
                       if(a[k][j] > a[i][j]+a[k][i] && i != k && j != k && i != j)
                       a[k][j] = a[i][j] + a[k][i];
}
int main(){
    int i,j;
    read();
    rf();
    for(i = 1; i <= n; i++){
          for(j = 1; j <= n; j++)
          fout<<a[i][j]<<" ";
          fout<<"\n";
    }
fout.close();
return 0;
}