Pagini recente » Cod sursa (job #2151993) | Cod sursa (job #808662) | Cod sursa (job #2872660) | Cod sursa (job #2491080) | Cod sursa (job #2970245)
/*
* https://infoarena.ro/problema/royfloyd 100p
* O(V^3)
*/
#include <bits/stdc++.h>
using namespace std;
int V, d[105][105];
void read(){
ifstream in("royfloyd.in");
in >> V;
for(int i = 0; i < V; i++)
for(int j = 0; j < V; j++)
in >> d[i][j];
in.close();
}
void print(){
ofstream out("royfloyd.out");
for(int i = 0; i < V; i++, out << '\n')
for(int j = 0; j < V; j++)
out << d[i][j] << ' ';
out.close();
}
void floydWarshall(){
for(int k = 0; k < V; k++)
for(int i = 0; i < V; i++)
for(int j = 0; j < V; j++) {
if (i == j)
continue;
if(!d[i][k] || !d[k][j])
continue;
if(!d[i][j] || d[i][j] > d[i][k] + d[k][j])
d[i][j] = d[i][k] + d[k][j];
}
}
int main() {
read();
floydWarshall();
print();
return 0;
}