Submission #1304939

#TimeUsernameProblemLanguageResultExecution timeMemory
1304939cansu_mutluSpeedrun (RMI21_speedrun)C++17
100 / 100
35 ms552 KiB
#include<bits/stdc++.h> #include "speedrun.h" using namespace std; int n = 0,cnt = 0; vector<int> vis; vector<int> sira; vector<vector<int>> a(n+1); void dfs(int s,int anne) { sira.push_back(s); for(int x=1;x<=10;x++) { if((1<<(x-1))&anne) { setHint(s,x,true); } } for(int x:a[s]) { if(x!=anne) dfs(x,s); } } void assignHints(int subtask, int N, int A[], int B[]) { int n = N; a.resize(n+1); for(int i=1;i<n;i++) { int u = A[i]; int v = B[i]; a[u].push_back(v); a[v].push_back(u); } setHintLen(20); dfs(1,0); for(int i=0;i<n;i++) { if(i>0) { //int kendi = sira[i]; } if(i<n-1) { //cout << i << " "<< sira.size() << endl; int cocuk = sira[i+1]; for(int x=1;x<=10;x++) { if((1<<(x-1))&cocuk) { setHint(sira[i],x+10,true); } } } } } int atabul() { int cur = 0; for(int i=1;i<=10;i++) { if(getHint(i)) { cur+= (1<<(i-1)); } } return cur; } int cocukbul() { int cur = 0; for(int i=1;i<=10;i++) { if(getHint(i+10)) { cur+= (1<<(i-1)); } } return cur; } void speedrun(int subtask, int N, int start) { n = N; int s = start; int cur = atabul(); int eski = start; while(cur!=0) { //cout << eski << " "<< cur << endl; goTo(cur); int nw = atabul(); eski = cur; cur = nw; } cur = cocukbul(); while(cur!=0) { while(goTo(cur)==false) { goTo(atabul()); } cur = cocukbul(); } }
#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...