Submission #1292711

#TimeUsernameProblemLanguageResultExecution timeMemory
1292711SofiatpcStations (IOI20_stations)C++20
0 / 100
388 ms572 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 1e3+5; vector<int> adj[MAXN]; int tin[MAXN], tout[MAXN], t; vector<int> labels; void dfs(int s, int p){ tin[s] = ++t; for(int viz : adj[s]) if(viz != p)dfs(viz,s); tout[s] = t; labels[s] = (tout[s]<<9)+tin[s]; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { labels.resize(n); for (int i = 0; i < n-1; i++) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } t = -1; dfs(0,-1); for(int i = 0; i < n; i++)adj[i].clear(); return labels; } int find_next_station(int s, int t, vector<int> c) { int x = (1<<9)-1; x = (x<<9); t -= (t&x); int outmx = (c.back()&x)>>9; int cur = 0; while(cur < c.size()){ int viz = c[cur]; int in = viz-(viz&x), out = (viz&x)>>9; if(out == outmx)break; if(in <= t && t<= out)return viz; cur++; } for(int j = c.size()-1; j >= cur; j--){ int viz = c[j]; int in = viz-(viz&x), out = (viz&x)>>9; if(in <= t && t<= out)return viz; } }

Compilation message (stderr)

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:53:1: warning: control reaches end of non-void function [-Wreturn-type]
   53 | }
      | ^
#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...