Cod sursa(job #1383529)

Utilizator bobozzzBogdan bobozzz Data 10 martie 2015 12:48:53
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb

#include<fstream>
using namespace std;
int a[101][101],l[101][101],n;
ifstream f1("royfloyd.in");
ofstream f2("royfloyd.out");

void cit(){f1>>n;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
{f1>>a[i][j];
l[i][j]=a[i][j];}
}

void nr(){
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if (l[i][j]==0) l[i][j]=n+1;
}

void war() {
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
for (int k=1;k<=n;k++)
if (l[i][j]>l[i][k]+l[j][k])
l[i][j]=l[i][k]+l[j][k];}

void scrie(){
for (int i=1;i<=n;i++)
{for (int j=1;j<=n;j++)
if (i==j or l[i][j]==n+1) f2<<0<<" ";
else f2<<l[i][j]<<" ";
f2<<'/n';}
}

int main() {cit();nr();war();scrie();}