Submission #1233474

#TimeUsernameProblemLanguageResultExecution timeMemory
1233474maya_sSpeedrun (RMI21_speedrun)C++20
19 / 100
30 ms544 KiB
#include "speedrun.h" #include<bits/stdc++.h> using namespace std; typedef int ll; void dfs_set_hints(ll n, ll p, vector<vector<ll>> &g){ for(ll i = 0; i < 10; i++) if(g[n][0] & (1 << i)) setHint(n, i+1, 1); if(g[n].size() == 2) for(ll i = 0; i < 10; i++) if(g[n][1] & (1 << i)) setHint(n, i+11, 1); for(ll k: g[n]) if(k != p) dfs_set_hints(k, n, g); } void assignHints(int subtask, int n, int A[], int B[]) { setHintLen(20); vector<vector<ll>> g(n+1); for(ll i = 1; i < n; i++) g[A[i]].push_back(B[i]), g[B[i]].push_back(A[i]); dfs_set_hints(1, 0, g); } void dfs_speedrun(ll n, ll p, ll l){ ll a = 0, b = 0; for(ll i = 1; i <= 10; i++) if(getHint(i)) a += (1 << (i-1)); for(ll i = 11; i <= 20; i++) if(getHint(i)) b += (1 << (i-11)); if(a != p) {goTo(a); dfs_speedrun(a, n, l);} if(b && b != p) {goTo(b); dfs_speedrun(b, n, l);} if(p) goTo(p); } void speedrun(int subtask, int n, int start) { dfs_speedrun(start, 0, n); }
#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...