제출 #1150920

#제출 시각아이디문제언어결과실행 시간메모리
1150920gygSplit the Attractions (IOI19_split)C++20
18 / 100
58 ms14532 KiB
#include "split.h" #include <bits/stdc++.h> using namespace std; #define sig signed #define int long long #define arr array #define vec vector const int N = 1e5 + 5; int n, a, b, c; arr<vec<int>, N> adj; arr<bool, N> vs; vec<int> ord; void dfs(int u) { vs[u] = true, ord.push_back(u); for (int v : adj[u]) if (!vs[v]) dfs(v); } arr<int, N> ans; vec<sig> find_split(sig _n, sig _a, sig _b, sig _c, vec<sig> _u, vec<sig> _v) { n = _n, a = _a, b = _b, c = _c; for (int i = 0; i < _u.size(); i++) { int u = _u[i] + 1, v = _v[i] + 1; adj[u].push_back(v), adj[v].push_back(u); } int st = 1; for (int u = 1; u <= n; u++) if (adj[u].size() == 1) st = u; dfs(st); for (int i = 0; i < ord.size(); i++) { if (i < a) ans[ord[i]] = 1; else if (i < a + b) ans[ord[i]] = 2; else ans[ord[i]] = 3; } vec<sig> rsp; for (int u = 1; u <= n; u++) rsp.push_back(ans[u]); return rsp; }
#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...