제출 #1021229

#제출 시각아이디문제언어결과실행 시간메모리
1021229vjudge1Split the Attractions (IOI19_split)C++17
0 / 100
73 ms15208 KiB
#include "split.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using vll = vector <ll>; using vi = vector <int>; const ll MAXN = 1E5+16; bool vis[MAXN]; vll adj[MAXN]; vll ord; void dfs (ll u) { if (vis[u]) return; vis[u] = true; ord.push_back(u); for (ll v : adj[u]) dfs(v); } vi find_split (int n, int a, int b, int c, vi us, vi vs) { if (a > b) swap(a, b); if (b > c) swap(b, c); if (a > b) swap(a, b); assert(a <= b && b <= c); ll m = us.size(); for (ll i = 0; i < m; i++) { adj[us[i]].push_back(vs[i]); adj[vs[i]].push_back(us[i]); } ll st = 0; for (ll u = 0; u < n; u++) if (adj[u].size() == 1) st = u; dfs(st); vi ans(n, -15); for (ll i = 0; i < a; i++) ans[ord[i]] = 1; for (ll i = a; i < a+b; i++) ans[ord[i]] = 2; for (ll i = a+b; i < n; i++) ans[ord[i]] = 3; return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...