Submission #1242694

#TimeUsernameProblemLanguageResultExecution timeMemory
1242694haithamcoderSplit the Attractions (IOI19_split)C++20
7 / 100
35 ms7752 KiB
#include "split.h" #include<bits/stdc++.h> using namespace std; #define ll int #define db(x) cerr << #x << " = " << x << " | " #define dbg(x) cerr << #x << " = " << x << "\n" void pr(vector<ll> a) { for (auto x : a) cout << x << " "; cout << "\n"; } vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) { // vector<ll> res; vector<vector<ll>> adj(n); ll m = p.size(); for (ll i = 0; i < m; i++) { adj[p[i]].push_back(q[i]); adj[q[i]].push_back(p[i]); } ll root = 0; for (ll i = 0; i < n; i++) { if (adj[i].size() == 1) { root = i; break; } } ll par = -1, u = root; dbg(root); vector<ll> res(n); ll num = 1; ll cnt = 0; vector<bool> vis(n, 0); while (num < 4) { vis[u] = 1; res[u] = num; // dbg(u); cnt++; for (auto c : adj[u]) { // db(c); db(u); dbg(par); if (c != par) { par = u; u = c; break; } } if ((num == 1 && cnt >= a) || (num == 2 && cnt >= b) || (num == 3 && cnt >= c)) { num++; cnt = 0; } if (num == 4) break; } /*for (ll i = 0; i < n; i++) { if (!vis[i]) res[i] = 3; }*/ 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...