Submission #398026

#TimeUsernameProblemLanguageResultExecution timeMemory
398026AmineWeslatiLove Polygon (BOI18_polygon)C++14
25 / 100
314 ms11412 KiB
#include "bits/stdc++.h" using namespace std; typedef long long ll; typedef vector<int>vi; #define pb push_back #define sz(v) (int)v.size() typedef string str; #define FOR(i,a,b) for(int i=a; i<b; i++) void IO(){ #ifdef LOCAL freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); #endif } //------------------------------------------------------// void ckmin(int &x, int y){x=min(x,y);} const int MX=2e5; int N; vi out(MX); map<str,int>mp; int main(){ IO(); cin>>N; int cnt=0; FOR(i,0,N){ str s,ss; cin>>s>>ss; if(!mp.count(s)) mp[s]=cnt++; if(!mp.count(ss)) mp[ss]=cnt++; out[mp[s]]=mp[ss]; } if(N&1){ cout << -1 << endl; return 0; } //Sub2 vi vis(N,0); int ans=0; FOR(i,0,N){ int n=0,cur=i; while(!vis[cur]){ vis[cur]=1; n++; cur=out[cur]; } if(n!=2) ans+=(n+1)/2; } cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...