3
int check(vector<int> a[], vector<int> &col, int sv, int i) {4
for (auto it : a[sv]) {5
if (col[it] == i) return 0;10
void dfs(vector<int> a[], vector<int> &col, int sv, int lc) {11
for (int i = 1; i < 5; i++) {12
if (check(a, col, sv, i)) {17
for (auto it : a[sv]) {19
dfs(a, col, it, col[sv]);23
vector<int> gardenNoAdj(int n, vector<vector<int>> &paths) {25
for (auto it : paths) {26
a[it[0] - 1].push_back(it[1] - 1);27
a[it[1] - 1].push_back(it[0] - 1);30
vector<int> col(n, -1);31
for (int i = 0; i < n; i++) {