Submission #862842

#TimeUsernameProblemLanguageResultExecution timeMemory
862842maks007Love Polygon (BOI18_polygon)C++14
0 / 100
209 ms14516 KiB
//Bismi Allah #include "bits/stdc++.h" using namespace std; signed main () { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; map <string,int> mp; vector <int> used(n, 0), rk(n, 0), g[n]; function <void(int)> dfs=[&](int v) { used[v] = 1; rk[v] = 1; for(auto u : g[v]) { if(used[u]) continue; dfs(u); rk[v] += rk[u]; } }; for(int i = 0; i < n; i ++) { string u, v; cin >> u >> v; if(mp.count(u) == 0) mp[u] = mp.size(); if(mp.count(v) == 0) mp[v] = mp.size(); g[mp[u]].push_back(mp[v]); g[mp[v]].push_back(mp[u]); } if(n % 2 == 1) { assert(false); cout << -1; return 0; } int ans = 0, mod = 0; for(int i = 0; i < n; i ++) { if(used[i]) continue; dfs(i); ans += rk[i] / 2; mod += (rk[i] % 2); } if(mod % 2 == 1) assert(false); else cout << ans + mod; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...