Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #2042015) | Cod sursa (job #3350463)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("royfloyd.in");
ofstream cout("royfloyd.out");
vector<pair<int,int>>adj[105];
int d[105][105];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
int x;
cin>>x;
if(x!=0){
adj[i].push_back({j,x});
d[i][j]=x;
}
else if(i!=j) d[i][j]=1e9;
else d[i][j]=0;
}
}
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(d[i][j]>d[i][k]+d[k][j]){
d[i][j]=d[i][k]+d[k][j];
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<d[i][j]<<" ";
}
cout<<'\n';
}
return 0;
}