Input
The input starts with an integer T(1<=T<=25) which indicate the number of test cases.
Then T test cases follow. Each test case starts with two integers N and M(1<=N,M<=1000).
N indicates the number of friends, the friends are marked from 1 to N. Then M lines follow.
Each line consists of two integers A and B(A!=B), that means friend A and friend B know each other.
There will be a blank line between two cases.
Output
For each test case, just output how many tables Ignatius needs at least. Do NOT print any blanks.
Sample Input
2
5 3
1 2
2 3
4 5
5 1
2 5
Sample Output
2
4
#include<stdio.h>
int graph[1005],n,m,a,b;
int find(int x)
{
if(graph[x]==-1)
{
return x;
}
return graph[x]=find(graph[x]);
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
graph[i]=-1;
}
while(m--)
{
scanf("%d%d",&a,&b);
a=find(a);
b=find(b);
if(a!=b)
{
graph[a]=b;
}
}
int count=0;
for(int i=1;i<=n;i++)
{
if(graph[i]==-1)
{
count++;
}
}
printf("%d\n",count);
}
return 0;
}