# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1215398 | brinton | Rectangles (IOI19_rect) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "split.h"
using namespace std;
vector<int> find_split(int N, int a, int b, int c, vector<int> p, vector<int> q) {
vector<vector<int>> edges(N);
vector<int> color(N,3);
for(int i = 0;i < p.size();i++){
edges[p[i]].push_back(q[i]);
edges[q[i]].push_back(p[i]);
}
vector<int> vis(N,false);
int gt = 0;
function<void(int)> dfs = [&](int cur){
if(gt < b) color[cur] = 2;
gt++;
vis[cur] = true;
for(auto nxt:edges[cur]){
if(vis[nxt]) continue;
dfs(nxt);
}
};
dfs(0);
for(auto &i:color){
if(i == 3) {
i = 1;
break;
}
}
return color;
}