Pagini recente » Cod sursa (job #2655187) | Diferente pentru problema/joculet intre reviziile 1 si 26 | Cod sursa (job #1052562) | Monitorul de evaluare | Cod sursa (job #2159445)
#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';
}
}