Submission #1091847

#TimeUsernameProblemLanguageResultExecution timeMemory
1091847alexddSpeedrun (RMI21_speedrun)C++17
0 / 100
64 ms1616 KiB
#include "speedrun.h" #include <bits/stdc++.h> using namespace std; vector<int> con[1005]; void pune_hint(int nod, int x, int y) { for(int i=0;i<10;i++) { if(((1<<i)&x)) setHint(nod,i+1,1); if(((1<<i)&y)) setHint(nod,i+11,1); } } void dfs(int nod, int par, int tori) { vector<int> v; for(int adj:con[nod]) if(adj!=par) v.push_back(adj); for(int i=0;i<v.size();i++) { if(i+1 < v.size()) dfs(v[i],nod,v[i+1]); else dfs(v[i],nod,0); } if(tori==0) { if(v.empty()) pune_hint(nod,par,0); else pune_hint(nod,par,v[0]); } else { if(v.empty()) pune_hint(nod,tori,0); else pune_hint(nod,tori,v[0]); } } void assignHints(int subtask, int N, int A[], int B[]) { setHintLen(20); for(int i=1;i<N;i++) { con[A[i]].push_back(B[i]); con[B[i]].push_back(A[i]); } dfs(1,0,0); } int get1() { int aux=0; for(int i=0;i<10;i++) if(getHint(i+1)) aux += (1<<i); return aux; } int get2() { int aux=0; for(int i=0;i<10;i++) if(getHint(i+11)) aux += (1<<i); return aux; } int nxt[1005],down[1005]; void dfs_speedrun(int nod, int par) { nxt[nod] = get1(); down[nod] = get2(); if(down[nod]==0)///e frunza { if(par!=0) assert(goTo(par)); return; } int c = down[nod]; while(1) { assert(goTo(c)); dfs_speedrun(c,nod); c = nxt[c]; if(c==nod) break; } if(par!=0) assert(goTo(par)); } void speedrun(int subtask, int N, int start) { int cur=start; while(cur!=1) { nxt[cur] = get1(); assert(goTo(nxt[cur])); cur=nxt[cur]; } assert(cur==1); dfs_speedrun(1,0); } /** 5 1 2 2 3 3 4 3 5 4 */

Compilation message (stderr)

speedrun.cpp: In function 'void dfs(int, int, int)':
speedrun.cpp:21:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |     for(int i=0;i<v.size();i++)
      |                 ~^~~~~~~~~
speedrun.cpp:23:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |         if(i+1 < v.size())
      |            ~~~~^~~~~~~~~~
#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...