Mai intai trebuie sa te autentifici.
Cod sursa(job #2808183)
| Utilizator | Data | 24 noiembrie 2021 18:12:45 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <iostream>
using namespace std;
int A[101][101]={0},n;
void roy(){
for(int k=0;k<n;++k)
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
if(A[i][k] && A[k][j] && (A[i][j]>A[k][j]+A[i][k] || !A[i][j]) && i^j)
A[i][j]=A[i][k]+A[k][j];
}
int main()
{
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>n;
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
cin>>A[i][j];
roy();
for(int i=0;i<n;++i){
for(int j=0;j<n;++j)
cout<<A[i][j]<<" ";
cout<<"\n";
}
}
