Cod sursa(job #2159445)
Utilizator | Data | 10 martie 2018 22:30:20 | |
---|---|---|---|
Problema | Floyd-Warshall/Roy-Floyd | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
std::ifstream in("royfloyd.in");
std::ofstream out("royfloyd.out");
int main() {
short n,i,j,k;
in>>n;
short v[n][n];
for(i=0; i<n; ++i)
for(j=0; j<n; ++j)
in>>v[i][j];
for(k=0; k<n; ++k)
for(i=0; i<n; ++i)
for(j=0; j<n; ++j)
if(v[i][k]&&v[k][j]&&(v[i][j]>v[i][k]+v[k][j]||!v[i][j])&&i!=j)
v[i][j]=v[i][k]+v[k][j];
for(i=0; i<n; ++i) {
for(j=0; j<n; ++j)
out<<v[i][j]<<" ";
out<<'\n';
}
}