Cod sursa(job #2510286)

Utilizator vxpsnVictor Pusnei vxpsn Data 16 decembrie 2019 10:48:58
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("royfloyd.in");
ofstream out("royfloyd.out");



int main() {
	int n, a[205][205], ans[205][205];

	in>>n;

	for(int i = 1; i <= n; ++i) {
		for(int j = 1; j <= n; ++j) {
			in>>a[i][j];
			if(a[i][j] == 0) ans[i][j] = 1<<30;
			else 		 ans[i][j] = a[i][j];
		}
	}

	for(int k = 1; k <= n; ++k) {
		for(int i = 1; i <= n; ++i) {
			for(int j = 1; j <= n; ++j) {
				if(i != j && ans[i][j] > ans[i][k] + ans[k][j]) {
					ans[i][j] = ans[i][k] + ans[k][j];
				}
			}
		}
	}

	for(int i = 1; i <= n; ++i) {
		for(int j = 1; j <= n; ++j) {
			if(ans[i][j] == 1<<30 || i == j) out<<0<<" ";
			else	      			 out<<ans[i][j]<<" ";
		}
		out<<"\n";
	}

	return 0;
}