Cod sursa(job #407598)

Utilizator APOCALYPTODragos APOCALYPTO Data 2 martie 2010 14:42:09
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
//centroid
//brute force in O(n^2)
#include<iostream>
#include<vector>
#include<fstream>
#include<queue>
using namespace std;
#define foreach(v)  for(typeof (v).begin() it=(v).begin();it!=(v).end();it++)

vector<int> G[5000];

int n,sol[5000],sol_size=0 ;


void cit()
{int i,x,y;
	ifstream fin("centroid.in");
	fin>>n;
	for(i=1;i<=n;i++)
		 {fin>>x>>y;
	     G[x].push_back(y);
		 G[y].push_back(x);
		 }
	fin.close();
}	
int dfs(int nod,int cant)
{int s=1;
foreach(G[nod])
if(*it!=cant)
	s+=1+dfs(*it,nod);

return s;
}
int main()
{int min=0x3f3f3f3f,i,compare,max;
	cit();
	for(i=1;i<=n;i++)
	
	{
	    max=0;
		foreach(G[i])
			 {compare=dfs(*it,i);//vezi sa nu se intoarca
			 if(compare>max)
				 max=compare;}
		if(max<min)
			{min=max;
		     sol_size=1;
			 sol[sol_size]=i;
			}
			else
				if(max==min)
					{sol_size++;
				    sol[sol_size]=i;
					}
			//else take no effect		
	}		    
	
	return 0;
}