Pagini recente » Cod sursa (job #2284390) | Cod sursa (job #1343045) | Cod sursa (job #870056) | Cod sursa (job #1528780) | Cod sursa (job #407598)
Cod sursa(job #407598)
//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;
}