Nu aveti permisiuni pentru a descarca fisierul grader_test8.in
Cod sursa(job #1204166)
Utilizator | Data | 2 iulie 2014 11:11:45 | |
---|---|---|---|
Problema | Floyd-Warshall/Roy-Floyd | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.77 kb |
#include<fstream>
using namespace std;
int n;
int a[102][102];
void read ()
{
ifstream fin ("royfloyd.in");
fin >> n;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
fin >> a[i][j];
}
}
fin.close ();
}
void print ()
{
ofstream fout ("royfloyd.out");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
fout << a[i][j] << " ";
}
fout << "\n";
}
fout.close ();
}
void royfloyd ()
{
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[i][k] + a[k][j] || a[i][j] == 0) && i != j)
{
a[i][j] = a[i][k] + a[k][j];
}
}
}
}
}
int main ()
{
read ();
royfloyd ();
print ();
}