#include <iostream>#include <cstring>using namespace std;int map[100][100];int sum[100], weight[100];int visit[100];int n;void dfs(int node){    visit[node] = 1;    sum[node] = 1;    int v, maxw = 0;    for (v = 1; v <= n; v++)    {        if (!map[node][v] || visit[v])            continue;        dfs(v);        sum[node] += sum[v];        if (sum[v] > maxw)            maxw = sum[v];    }    if (n - sum[node] > maxw)        maxw = n - sum[node];    weight[node] = maxw;}int main(){    memset(map, 0, sizeof(map));    memset(sum, 0, sizeof(sum));    memset(weight, 0, sizeof(weight));    memset(visit, 0, sizeof(visit));    cin >> n;    int i, x, y;    for (i = 1; i < n; i++)    {        cin >> x >> y;        map[x][y] = 1;        map[y][x] = 1;    }    dfs(1);    int ans = n, ansN = 0;    for (i = 1; i <= n; i++)        if (weight[i] < ans)        {            ans = weight[i];            ansN = i;        }    cout << ansN << " " << ans << endl;    return 0;}

输入:11 1 2 1 3 2 4 2 5 2 6 3 7 7 8 7 11 6 9 9 10 输出:_________

填写答案