#include <bits/stdc++.h>
using namespace std;
#define si short int
#define ll long long int
#define ull unsigned long long int
#define mod 1000000007
#define endl "\n"
#define space " "
#define debug(argument) cout << "debug_point: " << argument << endl;
#define printvectorset(vs) \
for (auto &value : vs) \
{ \
cout << value << space; \
} \
cout << endl;
///////////////////////// Garvit_Goyal /////////////////////////////
int find_parent(int u, vector<int> &parent)
{
if (parent[u] == u)
{
return u;
}
return parent[u] = find_parent(parent[u], parent);
}
void make_union(int u, int v, vector<int> &parent, vector<int> &size)
{
u = find_parent(u, parent);
v = find_parent(v, parent);
if (u == v)
{
return;
}
if (size[u] < size[v])
{
swap(u, v);
}
parent[v] = u;
size[u] += size[v];
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
/* #ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif*/
int n, k;
cin >> n >> k;
vector<int> parent(n + 1);
vector<int> size(n + 1, 1);
vector<si> flagVector(n + 1, 0);
map<int, int> childCnt;
for (int i = 1; i <= n; i++)
{
parent[i] = i;
}
for (int i = 0; i < k; i++)
{
int u, v;
cin >> u >> v;
make_union(u, v, parent, size);
childCnt[u]++;
childCnt[v]++;
}
for (auto &value : childCnt)
{
if (value.second == 1)
{
flagVector[find_parent(value.first, parent)] += 1;
}
}
int satisfied = 0;
for (int i = 1; i <= n; i++)
{
if (parent[i] == i)
{
// cout << "adding " << size[i] - 1 << " at " << i << endl;
satisfied += (size[i] - 1);
}
}
// debug(satisfied);
if (satisfied < n)
{
cout << k - satisfied << endl;
}
else
{
cout << 0 << endl;
}
return 0;
}
1594B - Special Numbers | 1614A - Divan and a Store |
2085. Count Common Words With One Occurrence | 2089. Find Target Indices After Sorting Array |
2090. K Radius Subarray Averages | 2091. Removing Minimum and Maximum From Array |
6. Zigzag Conversion | 1612B - Special Permutation |
1481. Least Number of Unique Integers after K Removals | 1035. Uncrossed Lines |
328. Odd Even Linked List | 1219. Path with Maximum Gold |
1268. Search Suggestions System | 841. Keys and Rooms |
152. Maximum Product Subarray | 337. House Robber III |
869. Reordered Power of 2 | 1593C - Save More Mice |
1217. Minimum Cost to Move Chips to The Same Position | 347. Top K Frequent Elements |
1503. Last Moment Before All Ants Fall Out of a Plank | 430. Flatten a Multilevel Doubly Linked List |
1290. Convert Binary Number in a Linked List to Integer | 1525. Number of Good Ways to Split a String |
72. Edit Distance | 563. Binary Tree Tilt |
1306. Jump Game III | 236. Lowest Common Ancestor of a Binary Tree |
790. Domino and Tromino Tiling | 878. Nth Magical Number |