Cod sursa(job #3278700)

Utilizator PsyDuck1914Feraru Rares-Serban PsyDuck1914 Data 20 februarie 2025 16:17:03
Problema Zvon Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f ("zvon.in");
ofstream g ("zvon.out");

const int NMAX = 1e5;

vector<int> adj[NMAX + 1];
int dp[NMAX + 1];
bool marked[NMAX + 1];

void clear(){
    
    for(int i=1; i<=NMAX; i++)
        adj[i].clear();
        
    for(int i=1; i<=NMAX; i++)
        dp[i] = 0, marked[i] = false;
    
    
}

void dfs(int nod){
    
    marked[nod] = true;
    
    if(adj[nod].size() == 1){
        
        dp[nod] = 1;
        return;
        
    }
    
    if(adj[nod].size() == 0){
        
        return;
        
    }
    
    for(int next : adj[nod]){
        
        if(!marked[next]){
            
            dfs(next);
            
            dp[nod] += dp[next];
            
        }
        
    }
    
}

void solve(){
    
    int n;
    f >> n;
    
    clear();
    
    for(int i=1; i<n; i++){
        
        int x, y;
        f >> x >> y;
        
        adj[x].push_back(y);
        adj[y].push_back(x);
        
    }
    
    dfs(1);
    
    g << dp[1] << "\n";
    
}

int main()
{
    int t;
    f >> t;
    
    for(int i=1; i<=t; i++)
        solve();

    return 0;
}