Submission #442514

#TimeUsernameProblemLanguageResultExecution timeMemory
442514abc864197532Love Polygon (BOI18_polygon)C++17
0 / 100
182 ms10632 KiB
#include <bits/stdc++.h> using namespace std; #define lli long long int #define X first #define Y second #define pb push_back #define eb emplace_back #define mp make_pair #define pii pair<int, int> #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define test(args...) abc("[" + string(#args) + "]", args) void abc() {cerr << endl;} template <typename T, typename ...U> void abc(T a, U ...b) { cerr << a << ' ', abc(b...); } template <typename T> void printv(T l, T r) { while (l != r) cerr << *l << " \n"[++l == r]; } const int mod = 1e9 + 7, N = 200000; int main () { ios::sync_with_stdio(false); cin.tie(0); int n, _id = 0; cin >> n; map <string, int> m1; auto get = [&](string s) { if (m1.count(s)) return m1[s]; return m1[s] = _id++; }; vector <int> pt(n); string s, t; for (int i = 0; i < n; ++i) { cin >> s >> t; int u = get(s), v = get(t); pt[u] = v; } int ans = n; vector <bool> vis(n, false); for (int i = 0; i < n; ++i) if (!vis[i]) { int now = i, cur = 0; while (!vis[now]) { vis[now] = true; cur++; now = pt[now]; } ans -= cur / 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...