98求助
查看原帖
98求助
766790
Ackid楼主2024/10/2 18:05
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+1;
int n,m,k,ans;
string g1,g2,g3,s1[N][2],s2[N][2];
map<string,string>mp;
void init(string g1,string g2,string g3){
	mp[g1]=g1;
	mp[g2]=g2;
	mp[g3]=g3;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=2;j++){
    		cin>>s1[i][j];
		}
	}
	cin>>m;
    for(int i=1;i<=m;i++){
    	for(int j=1;j<=2;j++){
    		cin>>s2[i][j];
		}
	}
	cin>>k;
	for(int i=1;i<=k;i++){
		cin>>g1>>g2>>g3;
		init(g1,g2,g3);
		if(mp[g1]!=mp[g2]){
			mp[g2]=mp[g1];
		}
		if(mp[g1]!=mp[g3]){
			mp[g3]=mp[g1];
		}
	}
	for(int i=1;i<=n;i++){
    	if(mp[s1[i][1]]!=mp[s1[i][2]]){
			ans++;
		}
	}
	for(int i=1;i<=m;i++){
    	if(mp[s2[i][1]]==mp[s2[i][2]]){ 
			ans++;
		}
	}
	cout<<ans<<endl;
	return 0;
}
2024/10/2 18:05
加载中...