Submission #850577

#TimeUsernameProblemLanguageResultExecution timeMemory
850577abcvuitunggioStations (IOI20_stations)C++17
0 / 100
1942 ms2097152 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; vector <int> ke[1001],ve,V; int t,tin[1001],tout[1001],d[1001]; void dfs(int u, int p){ tin[u]=++t; for (int v:ke[u]) if (v!=p){ d[v]=d[u]+1; dfs(v,u); } tout[u]=++t; } vector <int> label(int n, int k, vector <int> u, vector <int> v){ for (int i=0;i<n-1;i++){ ke[u[i]].push_back(v[i]); ke[v[i]].push_back(u[i]); } dfs(0,0); for (int i=0;i<n;i++) if (d[i]%2==0) V.push_back(tin[i]); else V.push_back(tout[i]); sort(V.begin(),V.end()); for (int i=0;i<n;i++){ int val=(d[i]%2?tout[i]:tin[i]); ve.push_back(lower_bound(V.begin(),V.end(),val)-V.begin()+1); } return ve; } int find_next_station(int s, int t, vector <int> c){ if (c.size()==1) return c[0]; if (s<c[0]){ int tout=c[c.size()-2]; if (t>tout||t<s) return c.back(); c.pop_back(); for (int i:c) if (t<i) return i; } if (t<c[0]||t>s) return c[0]; for (int i=c.size()-1;i;i--) if (t>c[i]) return c[i]; }

Compilation message (stderr)

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