#include<stdio.h>
#include<string.h>
#include<map>
#include<iostream>
using namespace std;
map<string,int>mymap;
int arr[5005];
int arr1[5005];
int par[5005];
int khoj_rep(int r)
{
if(par[r]==r)
{
return r;
}
else
{
return par[r]=khoj_rep(par[r]);
}
}
int main()
{
int a,b,C,R,tag,i,j,k,u,v,maximum,counter,l,p;
string s,s1,s2;
while(cin>>C>>R)
{
if(C==0&&R==0)
{
break;
}
tag=0;
for(i=1; i<=C; i++)
{
cin>>s;
if(!mymap[s])
{
mymap[s]=++tag;
par[i]=mymap[s];
}
}
for(j=1; j<=R; j++)
{
cin>>s1>>s2;
arr[j]=mymap[s1];
arr1[j]=mymap[s2];
u=khoj_rep(mymap[s1]);
v=khoj_rep(mymap[s2]);
if(u==v)
{
continue;
}
else
{
par[u]=v;
}
}
for(k=1; k<=R; k++)
{
u=khoj_rep(arr[k]);
v=khoj_rep(arr1[k]);
if(u==v)
{
continue;
}
else
{
par[u]=v;
}
}
maximum=0;
for(l=1; l<=C; l++)
{
counter=0;
for(p=l; p<=C; p++)
{
if(par[l]==par[p])
{
counter++;
}
}
if(maximum<counter)
{
maximum=counter;
}
}
cout<<maximum<<endl;
memset(arr,0,sizeof(arr));
memset(arr1,0,sizeof(arr1));
memset(par,0,sizeof(par));
mymap.clear();
}
return 0;
}
#include<string.h>
#include<map>
#include<iostream>
using namespace std;
map<string,int>mymap;
int arr[5005];
int arr1[5005];
int par[5005];
int khoj_rep(int r)
{
if(par[r]==r)
{
return r;
}
else
{
return par[r]=khoj_rep(par[r]);
}
}
int main()
{
int a,b,C,R,tag,i,j,k,u,v,maximum,counter,l,p;
string s,s1,s2;
while(cin>>C>>R)
{
if(C==0&&R==0)
{
break;
}
tag=0;
for(i=1; i<=C; i++)
{
cin>>s;
if(!mymap[s])
{
mymap[s]=++tag;
par[i]=mymap[s];
}
}
for(j=1; j<=R; j++)
{
cin>>s1>>s2;
arr[j]=mymap[s1];
arr1[j]=mymap[s2];
u=khoj_rep(mymap[s1]);
v=khoj_rep(mymap[s2]);
if(u==v)
{
continue;
}
else
{
par[u]=v;
}
}
for(k=1; k<=R; k++)
{
u=khoj_rep(arr[k]);
v=khoj_rep(arr1[k]);
if(u==v)
{
continue;
}
else
{
par[u]=v;
}
}
maximum=0;
for(l=1; l<=C; l++)
{
counter=0;
for(p=l; p<=C; p++)
{
if(par[l]==par[p])
{
counter++;
}
}
if(maximum<counter)
{
maximum=counter;
}
}
cout<<maximum<<endl;
memset(arr,0,sizeof(arr));
memset(arr1,0,sizeof(arr1));
memset(par,0,sizeof(par));
mymap.clear();
}
return 0;
}
0 comments: (+add yours?)
Post a Comment