Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define nmax 30003
- using namespace std;
- vector<int> L[nmax];
- int n, d[nmax];
- int st[nmax], top;
- void Citire()
- {
- int i, j;
- cin >> n;
- while (cin >> i >> j)
- {
- L[i].push_back(j);
- L[j].push_back(i);
- d[i]++;
- d[j]++;
- }
- }
- void Rezolva()
- {
- int i, cnt;
- for (i = 1; i <= n; i++)
- if (d[i] == 1)
- st[++top] = i;
- while (top > 0)
- {
- i = st[top--];
- for (auto j : L[i])
- if (d[j] != 1)
- {
- d[j]--;
- if (d[j] == 1)
- st[++top] = j;
- }
- }
- cnt = 0;
- for (i = 1; i <= n; i++)
- if (d[i] > 1) cnt++;
- cout << cnt << "\n";
- }
- int main()
- {
- Citire();
- Rezolva();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement