Mai intai trebuie sa te autentifici.
Cod sursa(job #2967841)
| Utilizator | Data | 20 ianuarie 2023 09:35:47 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.93 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int a[105][105] , n ;
int main()
{
f >> n ;
for ( int i = 1 ; i <= n ; i++)
for ( int j = 1 ; j <= n ; j++)
{
f >> a[i][j] ;
if(a[i][j] == 0 && i != j)
a[i][j] = INT_MAX;
}
for ( int k = 1 ; k <= n ; k ++)
for ( int i = 1 ; i <= n ; i++)
for ( int j = 1 ; j <= n ; j++)
if(a[i][k] != INT_MAX && a[k][j] != INT_MAX && a[i][j] > a[i][k] + a[k][j])
a[i][j] = a[i][k] + a[k][j];
for ( int i = 1 ; i <= n ; i++ )
{
for ( int j = 1 ; j <= n ; j++)
{
if(a[i][j] == INT_MAX)
a[i][j] = 0;
g << a[i][j] << " " ;
}
g << '\n';
}
return 0;
}
