216B. Forming Teams - Codeforces Solution C++

  Problem Link : 216B. Forming Teams 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;

#define ll long long int

int par[101];
int sz[101];

int find(int v)
{
	if(par[v]==v)
		return v;
	return par[v]=find(par[v]);
}

int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		sz[i]=1;
		par[i]=i;
	}

	int u,v,p1,p2,ans=0;
	for(int i=1;i<=m;i++)
	{
		cin>>u>>v;
		p1=find(u);
		p2=find(v);
		if(p1!=p2)
		{
			sz[p1]+=sz[p2];
			par[p2]=p1;
		}
		else
		{
			if(sz[p1]%2==1)
				ans++;
		}
	}
	if((n-ans)%2!=0)
        ans++;
	cout<<ans;
}

 

Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook. 

😇Happy Learning!!