#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const ll mod = 1000000007; #define rep(i,n) for(int i=0;i=0;i--) #define all(x) (x).begin(),(x).end() int main() { int N; cin >> N; vector counts(N, 0); rep(i, N - 1) { int a, b; cin >> a >> b; counts[--a]++; counts[--b]++; } //次数が1である頂点が2つのみの無向木 //無向「木」を道にするので、次数が3以上の頂点を数えればよい。 //次数1の頂点に接続する辺は、自明な場合を除いて必ず次数が2以上の頂点にも接続している。 ll answer = 0; rep(i, N) { if (counts[i] >= 3) answer += (ll)(counts[i] - 2); } cout << answer << endl; return 0; }