Cod sursa(job #1671274)

Utilizator SilviuIIon Silviu SilviuI Data 1 aprilie 2016 15:41:14
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#include <vector>
#define nmax 100010

using namespace std;

int tt,n,nr,x,y;
vector <int> g[nmax];

void dfs(int x,int dad)
{
    int mx=0;

    for (int i=0;i<(int)g[x].size();i++)
        if (g[x][i]!=dad) { mx=g[x][i]; break; }

    if (mx==0) return;

    dfs(mx,x);

    for (int i=0;i<(int)g[x].size();i++)
        if (g[x][i]!=dad && g[x][i]!=mx) { nr++; dfs(g[x][i],x); }

}

int main()
{
    freopen("zvon.in","r",stdin);
    freopen("zvon.out","w",stdout);

    scanf("%d",&tt);

    for (int o=1;o<=tt;o++) {
        scanf("%d",&n); nr=0;

        for (int i=1;i<=n;i++) g[i].clear();

        for (int i=1;i<n;i++) {
            scanf("%d %d",&x,&y);
            g[x].push_back(y); g[y].push_back(x);
        }

        dfs(1,0);

        if (n==1) printf("0\n"); else
           printf("%d\n",nr+1);
    }

    return 0;
}