Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- const int N = 1e5;
- map<string, int> mp;
- int n,m, comp = 0;
- vector<int> g[N+5];
- int vis[N+5];
- int DFS(int pos){
- vis[pos] = 1;
- for(int i = 0; i < g[pos].size(); i++){
- int ne = g[pos][i];
- if(!vis[ne]){
- comp++;
- DFS(ne);
- }
- }
- return comp;
- }
- int main(){
- string c, x, y;
- int ans = 0;
- while(true){
- cin >> n >> m;
- if(n == 0 && m == 0) break;
- for(int i = 1; i <= n; i++){
- cin >> c;
- mp.insert(make_pair(c,i));
- g[i].push_back(0);
- }
- for(int i = 1; i <= m; i++){
- cin >> x >> y;
- g[mp[x]].push_back(mp[y]);
- g[mp[y]].push_back(mp[x]);
- }
- for(int i = 1; i <= n; i++){
- ans = max(ans,DFS(i));
- }
- cout << ans << endl;
- ans = 0; comp = 0;
- memset(vis, 0, sizeof(vis));memset(g, 0, sizeof(g));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement