Submission #295567

#TimeUsernameProblemLanguageResultExecution timeMemory
295567rqiSplit the Attractions (IOI19_split)C++14
0 / 100
2080 ms2688 KiB
#include "split.h" #include <bits/stdc++.h> using namespace std; typedef vector<int> vi; #define pb push_back #define sz(x) (int)(x).size() const int mx = 100005; vi adj[mx]; vi res; vi find_split(int n, int a, int b, int c, vi p, vi q) { res = vi(n, 0); bool SUB1 = 1; for(int i = 0; i < sz(p); i++){ adj[p[i]].pb(q[i]); adj[q[i]].pb(p[i]); } for(int i = 0; i < n; i++){ if(sz(adj[i]) > 2) SUB1 = 0; } if(SUB1){ int A = 0; int B = 0; int C = 0; int cur = -1; for(int i = 0; i < n; i++) if(sz(adj[i]) == 1) cur = i; int last = -1; while(true){ if(A < a){ res[cur] = 1; A++; } else if(B < b){ res[cur] = 2; B++; } else{ res[cur] = 3; C++; } if(adj[cur][0] == last){ if(sz(adj[cur]) == 1) break; last = cur; cur = adj[cur][1]; } else{ last = cur; cur = adj[cur][0]; } } return res; } 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...