Submission #1242703

#TimeUsernameProblemLanguageResultExecution timeMemory
1242703iyedooSplit the Attractions (IOI19_split)C++20
0 / 100
0 ms328 KiB
#include "split.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; vector<vector<int>> graph; vector<bool> visited; vector<int> res; int A = 0, B = 0, C = 0; int far; void dfs(int u) { for (int v: graph[u]) { if (visited[v]) continue; visited[v] = 1; far = v; dfs(v); } } vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) { res.assign(n, 0); graph.resize(n); visited.assign(n, 0); for (int i = 0; i < p.size(); ++i) { graph[p[i]].push_back(q[i]); graph[q[i]].push_back(p[i]); } // visited[0] = 1; // res[0] = 1; // A++; dfs(0); queue<int> Q; visited.assign(n, 0); Q.push(far); A++; res[far] = 1; visited[far] = 1; while (!Q.empty()) { int u = Q.front(); Q.pop(); cout << u << "\n"; for (int v: graph[u]) { if (visited[v]) continue; if (A != a) A++, res[v] = 1; else if (B != b) B++, res[v] = 2; else if (C != c) C++, res[v] = 3; visited[v] = 1; Q.push(v); } } 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...