#include<stdio.h>
#include<string.h>
int par[30001];
int arr[500001],arr1[500001];
int khoj_rep(int r)
{
if(par[r]==r)
{
return r;
}
else
{
return par[r]=khoj_rep(par[r]);
}
}
int khoj_rep1(int r)
{
if(par[r]==r)
{
return r;
}
else
{
return par[r]=khoj_rep(par[r]);
}
}
int main()
{
long long int t,n,m,i,j,k,a,b,u,v,count;
scanf("%d",&t);
while(t--)
{
scanf("%lld%lld",&n,&m);
for(i=1; i<=n; i++)
{
par[i]=i;
}
for(j=1; j<=m; j++)
{
scanf("%lld%lld",&a,&b);
arr[j]=a;
arr1[j]=b;
u=khoj_rep(a);
v=khoj_rep(b);
if(u==v)
{
continue;
}
else
{
par[u]=v;
}
}
for(k=1; k<=m; k++)
{
u=khoj_rep1(arr[k]);
v=khoj_rep1(arr1[k]);
if(u==v)
{
continue;
}
else
{
par[u]=v;
}
}
long long int highest=0;
for(j=1; j<=n; j++)
{
if(par[j]!=0)
{
count=1;
for(k=j+1; k<=n; k++)
{
if(par[j]==par[k])
{
count++;
}
}
if(highest<count)
{
highest=count;
}
}
}
printf("%lld\n",highest);
memset(par,0,sizeof(par));
memset(arr,0,sizeof(arr));
memset(arr1,0,sizeof(arr1));
}
return 0;
}
#include<string.h>
int par[30001];
int arr[500001],arr1[500001];
int khoj_rep(int r)
{
if(par[r]==r)
{
return r;
}
else
{
return par[r]=khoj_rep(par[r]);
}
}
int khoj_rep1(int r)
{
if(par[r]==r)
{
return r;
}
else
{
return par[r]=khoj_rep(par[r]);
}
}
int main()
{
long long int t,n,m,i,j,k,a,b,u,v,count;
scanf("%d",&t);
while(t--)
{
scanf("%lld%lld",&n,&m);
for(i=1; i<=n; i++)
{
par[i]=i;
}
for(j=1; j<=m; j++)
{
scanf("%lld%lld",&a,&b);
arr[j]=a;
arr1[j]=b;
u=khoj_rep(a);
v=khoj_rep(b);
if(u==v)
{
continue;
}
else
{
par[u]=v;
}
}
for(k=1; k<=m; k++)
{
u=khoj_rep1(arr[k]);
v=khoj_rep1(arr1[k]);
if(u==v)
{
continue;
}
else
{
par[u]=v;
}
}
long long int highest=0;
for(j=1; j<=n; j++)
{
if(par[j]!=0)
{
count=1;
for(k=j+1; k<=n; k++)
{
if(par[j]==par[k])
{
count++;
}
}
if(highest<count)
{
highest=count;
}
}
}
printf("%lld\n",highest);
memset(par,0,sizeof(par));
memset(arr,0,sizeof(arr));
memset(arr1,0,sizeof(arr1));
}
return 0;
}
0 comments: (+add yours?)
Post a Comment