Cod sursa(job #1793251)
| Utilizator | Data | 30 octombrie 2016 20:52:01 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.8 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int main()
{
int n,mat[100][100];
int i,j,k;
f>>n;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
f>>mat[i][j];
}
}
for(k=0;k<n;k++){
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(mat[i][k] && mat[k][j]){
if(mat[i][j]> mat[i][k]+mat[k][j] || !mat[i][j]){
if(i!=j){
mat[i][j]=mat[i][k] + mat[k][j];
}
}
}
}
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
g<<mat[i][j]<<" ";
}
g<<endl;
}
return 0;
}
