0pts求助
查看原帖
0pts求助
690669
Beacon_wolf楼主2024/8/22 21:42
#include <bits/stdc++.h>
using namespace std;
map<string,string> fa,nf,yf;
string findfa(string x){return fa[x] == x? x:findfa(fa[x]);}
int main(){
	int x;
	cin >> x;
	for(int i = 1;i <= x;i++){
		string n1,n2;
		cin >> n1 >> n2;
		yf[n1] = n2;
		yf[n2] = n1;
	}
	int y;
	cin >> y;
	for(int i = 1;i <= y;i++){
		string n1,n2;
		cin >> n1 >> n2;
		nf[n1] = n2;
		nf[n2] = n1;
	}
	int g,ans = 0;
	cin >> g;
	for(int i = 1;i <= g;i++){
		string n1,n2,n3;
		cin >> n1 >> n2 >> n3;
		fa[fa[n1]] = n2,fa[n2] = n3;
		if(nf[n1] != ""){
			if(fa[nf[n1]] == fa[n1]) ans++;
		}
		if(nf[n2] != ""){
			if(fa[nf[n2]] == fa[n2]) ans++;
		}
		if(nf[n3] != ""){
			if(fa[nf[n3]] == fa[n3]) ans++;
		}
		if(yf[n1] != ""){
			if(fa[yf[n1]] != fa[n1]) ans++;
		}
		if(yf[n2] != ""){
			if(fa[yf[n2]] != fa[n2]) ans++;
		}
		if(yf[n3] != ""){
			if(fa[yf[n3]] != fa[n3]) ans++;
		}
	}
	cout << ans << endl;
	return 0;
}
2024/8/22 21:42
加载中...