제출 #1255825

#제출 시각아이디문제언어결과실행 시간메모리
1255825nerrrminSplit the Attractions (IOI19_split)C++20
18 / 100
55 ms20168 KiB
#include "split.h" #define pb push_back using namespace std; const int maxn = 3e5 + 10; int m, deg[maxn]; vector < int > g[maxn]; int used[maxn]; vector < int > path; void dfs(int beg, int from) { used[beg] = 1; path.pb(beg); for (auto nb: g[beg]) { if(used[nb])continue; dfs(nb, beg); } } vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) { m = p.size(); for (int i = 0; i < m; ++ i) { g[p[i]].pb(q[i]); g[q[i]].pb(p[i]); deg[p[i]] ++; deg[q[i]] ++; } int start = 1; for (int i = 0; i < n; ++ i) { if(deg[i] == 1) { start = i; break; } } dfs(start, 0); for (int i = 0; i < a; ++ i) used[path[i]] = 1; for (int i = a; i < a+b; ++ i) used[path[i]] = 2; for (int i = a+b; i < n; ++ i) used[path[i]] = 3; vector < int > res; for (int i = 0; i < n; ++ i) res.pb(used[i]); return res; }
#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...