Pagini recente » Cod sursa (job #3277240) | Cod sursa (job #2138587) | Cod sursa (job #1680103) | Cod sursa (job #2365783) | Cod sursa (job #3278700)
#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;
}