Nu aveti permisiuni pentru a descarca fisierul grader_test10.in
Cod sursa(job #1992021)
Utilizator | Data | 19 iunie 2017 02:57:10 | |
---|---|---|---|
Problema | Floyd-Warshall/Roy-Floyd | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.88 kb |
#include <fstream>
#define Vmax 100
#define maxim 1 << 16
using namespace std;
int main()
{
ifstream input("royfloyd.in");
ofstream output("royfloyd.out");
int V;
input >> V;
int i, j, k;
int dist[Vmax][Vmax];
for(i = 0; i < V; i ++)
for(j = 0; j < V; j ++)
dist[i][j] = maxim;
for(i = 0; i < V; i ++)
for(j = 0; j < V; j ++)
input >> dist[i][j];
for(k = 0; k < V; k ++)
for(i = 0; i < V; i ++)
for(j = 0; j < V; j ++)
if(dist[i][k] != maxim && dist[k][j] != maxim && i != j && (dist[i][j] > dist[i][k] + dist[k][j] || dist[i][j] == maxim))
dist[i][j] = dist[i][k] + dist[k][j];
for(i = 0; i < V; i ++)
{
for(j = 0; j < V; j ++)
output << dist[i][j] << ' ';
output << '\n';
}
return 0;
}