Submission #923965

#TimeUsernameProblemLanguageResultExecution timeMemory
923965Tyx2019Speedrun (RMI21_speedrun)C++17
0 / 100
1 ms344 KiB
#include <speedrun.h> #include <bits/stdc++.h> using namespace std; vector<int> adj[1005]; vector<int> dfsorder; int pararray[1005]; void dfs(int cur, int par){ cout << "DFSED " << cur << endl; pararray[cur]=par; dfsorder.push_back(cur); for(auto newnode:adj[cur]){ if(newnode!=par){ dfs(newnode,cur); } } } void assignHints(int subtask, int N, int A[], int B[]) { //cout << " am i gay " << endl; for(int i=1;i<N;i++){ adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } //cout << "yes i am " << endl; dfs(1, 1023); //cout << "i eat kids" << endl; setHintLen(20); int nextinline[N+5]; for(int i=1;i<N;i++){ nextinline[dfsorder[i-1]]=dfsorder[i]; } //cout << dfsorder.size() << endl; //cout << "Sorry i eat kids" << endl; nextinline[dfsorder[N-1]]=1023; //cout << "sorry what" << endl; for(int i=1;i<=N;i++){ int paren=pararray[i]; //cout << "PAREN " << paren << "\n"; for(int j=1;j<=10;j++){ if((paren&(1<<(j-1)))==0){ setHint(i,j,false); //cout << i << " " << j << " FALSE\n"; } else{ setHint(i,j,true); //cout << i << " " << j << " "<< "TRUE\n"; } } int nex=nextinline[i]; for(int j=1;j<=10;j++){ if((nex&(1<<(j-1)))==0) setHint(i,j+10,false); else setHint(i,j+10,true); } } } void speedrun(int subtask, int N, int start) { //Get to the root int cur=start; while(cur!=1){ //cout << current_node << " curnode\n"; int paren=0; int lol=1; for(int i=1;i<=10;i++){ paren += getHint(i) * lol; lol *= 2; } if(goTo(paren)){ cur=paren; continue; } else{ //cout << paren << " " << cur << endl; return; } cur=paren; } //cout << "im gay" << endl; int parens[N+5]; for(int j=0;j<N-1;j++){ int par=0; int lul=1; for(int i=1;i<=10;i++){ par += getHint(i)*lul; lul*=2; } parens[cur]=par; int next=0; int lol=1; for(int i=11;i<=20;i++){ next += getHint(i) * lol; lol *= 2; } if(goTo(next)){ cur=next; } else{ while(true){ int backto=parens[cur]; goTo(backto); if(goTo(next)){ cur=next; break; } } } } return; //Do the tour }
#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...