Pagini recente » Cod sursa (job #3169026) | Cod sursa (job #134194) | Cod sursa (job #990291) | Cod sursa (job #196734) | Cod sursa (job #1725194)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("traseu.in");
ofstream g("traseu.out");
int a[61][61], b[61][61], n, m, x, y, z, c[61][61];
int main()
{
f >> n >> m;
for( int i=1; i<=m; i++ )
{
f >> x >> y >> z;
a[x][y] = z;
b[x][y] = c[x][y] = 1;
}
for( int k=1; k<=n; k++ )
for( int i=1; i<=n; i++ )
for( int j=1; j<=n; j++ )
if( i != j )
if( a[i][k] && a[k][j] && (a[i][j]>a[i][k]+a[k][j] || !a[i][j] ))
{
a[i][j] = a[i][k] + a[k][j];
b[i][j] = b[i][k] + b[k][j];
}
int maxx = 1000000000;
for( int i=1; i<=n; i++ )
for( int j=1; j<=n; j++ )
if( b[i][j] + b[j][i] >= m && a[i][j] + a[j][i] < maxx )
maxx = a[i][j] + a[j][i];
for( int i=1; i<=n; i++ )
{
for( int j=1; j<=n; j++ )
g << a[i][j] << " ";
g << '\n';
}
g << '\n';
for( int i=1; i<=n; i++ )
{
for( int j=1; j<=n; j++ )
g << b[i][j] << " ";
g << '\n';
}
g << '\n';
for( int i=1; i<=n; i++ )
{
for( int j=1; j<=n; j++ )
g << c[i][j] << " ";
g << '\n';
}
g << '\n';
g << maxx;
return 0;
}