제출 #1290749

#제출 시각아이디문제언어결과실행 시간메모리
1290749kahoulSplit the Attractions (IOI19_split)C++20
0 / 100
3 ms1092 KiB
#include "split.h" using namespace std; const int maxn = 2e5 + 10; vector<int> rel[maxn]; int deg[maxn]; vector<int> res(maxn, 3); vector<bool> used(maxn, 0); int a, b, c; int amt = 0; void dfs (int u) { if (amt == b) return; used[u] = 1; res[u] = 2; amt++; for (auto v: rel[u]) { if (used[v]) continue; if (amt == b) return; dfs(v); } } vector<int> find_split(int n, int A, int B, int C, vector<int> p, vector<int> q) { a = A; b = B; c = C; for (int i = 0; i < p.size(); i++) { int u = p[i]; int v = q[i]; rel[u].push_back(v); rel[v].push_back(u); deg[u]++; deg[v]++; } for (int i = n - 1; i >= 0; i--) { if (deg[i] == 1) { res[i] = 1; used[i] = 1; break; } } if (used[0]) dfs(1); else dfs(0); vector<int> ans; for (int i = 0; i < n; i++) { ans.push_back(res[i]); } 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...