Submission #504844

#TimeUsernameProblemLanguageResultExecution timeMemory
504844duchungSpeedrun (RMI21_speedrun)C++17
0 / 100
234 ms748 KiB
#include<speedrun.h> #include<bits/stdc++.h> using namespace std; const int N = 1005; int timer = 0; vector<int> edge[N]; int parent[N] , tin[N] , Euler[N]; void dfs(int u) { tin[u] = ++timer; Euler[timer] = u; for (int v : edge[u]) { if (v == parent[u]) continue; parent[v] = u; dfs(v); } } void assignHints (int subtask , int n , int eu[] , int ev[]) { for (int i = 1 ; i < n ; ++i) { edge[eu[i]].push_back(ev[i]); edge[ev[i]].push_back(eu[i]); } dfs(1); setHintLen(20); for (int u = 1 ; u <= n ; ++u) { int v; if (u != 1) { v = parent[u]; for (int j = 0 ; j < 10 ; ++j) setHint(u , j + 1 , v >> j & 1); } if (tin[u] == n) v = 1; else v = Euler[tin[u] + 1]; for (int j = 0 ; j < 10 ; ++j) setHint(u , j + 11 , v >> j & 1); } } pair<int , int> Hint[N]; void speedrun(int subtask , int n , int cur) { int l = getLength(); int cnt = 1; while(cnt < n) { for (int j = 0 ; j < 10 ; ++j) if (getHint(j + 1)) Hint[cur].first ^= 1 << j; for (int j = 10 ; j < 20 ; ++j) if (getHint(j + 1)) Hint[cur].second ^= 1 << (j - 10); // cerr << cur << " " << Hint[cur].first << " " << Hint[cur].second << "\n"; int tmp = Hint[cur].second; while (!goTo(tmp)) { goTo(Hint[cur].first); } ++cnt; } }

Compilation message (stderr)

speedrun.cpp: In function 'void speedrun(int, int, int)':
speedrun.cpp:55:6: warning: unused variable 'l' [-Wunused-variable]
   55 |  int l = getLength();
      |      ^
#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...