Cod sursa(job #1152594)

Utilizator nickulNic Kul nickul Data 24 martie 2014 20:29:58
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
#include<vector>

using namespace std;

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

int main()
{
	int n,i,j,k;
	in>>n;
	vector< vector<int> > a;
	a.resize(n);
	for(i=0;i<n;i++)
	{
		a.at(i).resize(n);
		for(j=0;j<n;j++) in>>a.at(i).at(j);
	}
	for(k=0;k<n;k++)
		for(i=0;i<n;i++)
			for(j=0;j<n;j++) 
				if(a.at(i).at(j)>a.at(i).at(k)+a.at(k).at(j)&&a.at(i).at(k)&&a.at(k).at(j)) a.at(i).at(j)=a.at(i).at(k)+a.at(k).at(j);
				else if(a.at(i).at(j)==0&&i-j&&a.at(i).at(k)&&a.at(k).at(j)) a.at(i).at(j)=a.at(i).at(k)+a.at(k).at(j);
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++) out<<a.at(i).at(j)<<" ";
		out<<'\n';
	}
}