Pagini recente » Cod sursa (job #1306229) | Cod sursa (job #2925369) | Cod sursa (job #2503915) | Cod sursa (job #2516251) | Cod sursa (job #3264921)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n,i,j,k,dist[105][105],aux[105];
struct muchie{
int nod,cost;
};
vector <muchie> g[105];
queue <int> q;
void Lee(int x){
aux[x] = 0;
q.push(x);
while(!q.empty()){
k = q.front();
q.pop();
for(auto &it : g[k]){
if(aux[it.nod] > aux[k]+it.cost){
aux[it.nod] = aux[k]+it.cost;
q.push(it.nod);
}
}
}
}
int main()
{
fin>>n;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
fin>>k;
if(k){
g[i].push_back( { j, k } );
}
}
}
for(i=1;i<=n;i++){
for(j=0;j<105;j++) aux[j] = INT_MAX;
Lee(i);
for(j=1;j<=n;j++) dist[i][j] = aux[j];
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
fout<<dist[i][j]<<' ';
}
fout<<'\n';
}
return 0;
}