Submission #1190729

#TimeUsernameProblemLanguageResultExecution timeMemory
1190729Abdalaziz_AlshamiLove Polygon (BOI18_polygon)C++20
0 / 100
440 ms27004 KiB
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
map<string,string>a;
map<string,int>vis;
int dfs(string x){
	vis[x]=1;
	if(!vis[a[x]]) return dfs(a[x])+1;
	else return 0;
}
signed main(){
	ios::sync_with_stdio(0); cin.tie(0);
	int n; cin>>n;
	set<string>s; 
	for(int i=0;i<n;i++){
		string u,v; cin>>u>>v;
		s.insert(u); s.insert(v);
		a[u]=v;
	}
	int ans=0;
	for(auto i:s){
		if(a[i]==i) {
			ans++; continue; 
		}
		if(!vis[i]){
			vis[i]=1;
			ans+=(dfs(i)+1)/2;
		}
	}
	if(n%2) cout<<-1;
	else cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...