Submission #909453

#TimeUsernameProblemLanguageResultExecution timeMemory
909453shoryu386Love Polygon (BOI18_polygon)C++17
0 / 100
268 ms23120 KiB
#include <bits/stdc++.h> using namespace std; #define MAX 200007 #define int long long main(){ int n; cin >> n; if (n % 2 == 1) {cout << -1; return 0;} map<string, string> init; map<string, int> indexed; int adj[n]; for (int x = 0; x < n; x++){ string a, b; cin >> a >> b; init[a] = b; } string name[n]; int ptr = 0; for (auto y : init){ name[ptr] = y.first; indexed[y.first] = ptr; ptr++; } for (auto y : init){ adj[indexed[y.first]] = indexed[y.second]; } bitset<MAX> taken; int ans = 0; for (int x = 0; x < n; x++){ if (adj[x] != x && x == adj[adj[x]]){ taken[x] = 1; taken[adj[x]] = 1; } } for (int x = 0; x < n; x++){ if (taken[adj[x]]) {adj[x] = x; continue;} } for (int x = 0; x < n; x++){ if (adj[x] == x) continue; if (taken[x]) continue; if (taken[adj[x]]) {adj[x] = x; continue;} adj[adj[x]] = x; ans++; taken[x] = 1; taken[adj[x]] = 1; } for (int x = 0; x < n; x++) if (!taken[x]) ans++; cout << ans; }

Compilation message (stderr)

polygon.cpp:5:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    5 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...