Cod sursa(job #2024835)

Utilizator eduardandrei20Nechifor Eduard Andrei eduardandrei20 Data 21 septembrie 2017 11:52:52
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
#define NN 101
#define infi 1000000000
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int a[NN][NN],n;
void citire(){
in>>n;
int i,j;
for(i=1;i<=n;++i)
    for(j=1; j<=n; ++j)
    in>>a[i][j];
    for(i=1;i<=n;++i)
        for(j=1;j<=n;++j)
        if(!a[i][j])a[i][j]=infi;
}
void write(){
int i,j;
for(i=1;i<=n;++i)
{
    for(j=1;j<=n;++j)
        if(a[i][j]==infi||i==j)out<<0<<" ";
        else out<<a[i][j]<<" ";
    out<<'\n';
}


}
int main()
{
 citire();

 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][j]>a[i][k]+a[k][j])a[i][j]=a[i][k]+a[k][j];
write();




        return 0;
}