Pagini recente » Cod sursa (job #2729970) | Cod sursa (job #1281972) | Cod sursa (job #2728023) | Ecuatie | Cod sursa (job #2915900)
#include <iostream>
#include <vector>
#include <bitset>
using namespace std;
const int N = 2e5;
vector <int> adj[N + 1];
bitset <N + 1> viz;
int sum[N + 1], maxi[N + 1];
void dfs(int nod){
sum[nod] = viz[nod] = 1;
for(auto vec : adj[nod])
if(!viz[vec]){
dfs(vec);
maxi[nod] = max(maxi[nod], sum[vec]);
sum[nod] += sum[vec];
}
}
int main(){
int n;
cin >> n;
for(int i = 1; i <= n - 1; i++){
int a, b;
cin >> a >> b;
adj[a].push_back(b);
adj[b].push_back(a);
}
dfs(1);
for(int nod = 1; nod <= n; nod++)
if(maxi[nod] <= n / 2 && n - sum[nod] <= n / 2){
cout << nod;
return 0;
}
return 0;
}