#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int a[N];
int vis[N];
int dfs(int x,int s){
vis[x]=1;
if(vis[a[x]]) return (s+1)/2;
return dfs(a[x],s+1);
}
signed main(){
ios::sync_with_stdio(0); cin.tie(0);
int n; cin>>n;
map<string,int>m;
int d=1;
for(int i=0;i<n;i++){
string u,v; cin>>u>>v;
if(!m[u]) m[u]=d++;
if(!m[v]) m[v]=d++;
a[m[u]]=m[v];
}
int ans=0;
for(int i=1;i<=n;i++){
if(a[a[i]]==i) { continue; }
if(a[i]==i) { ans++; continue; }
if(!vis[i]) ans+=dfs(i,1);
}
if(n%2) cout<<-1;
else cout<<ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |