Submission #1205408

#TimeUsernameProblemLanguageResultExecution timeMemory
1205408banganStations (IOI20_stations)C++20
10 / 100
310 ms564 KiB
#include "stations.h" #include <vector> #include <bits/stdc++.h> std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { std::vector<std::vector<int>> adj(n); for (int i = 0; i < n - 1; i++) { adj[v[i]].push_back(u[i]); adj[u[i]].push_back(v[i]); } int timer = 0; std::vector<int> st(n), ft(n), dep(n); auto dfs = [&](auto self, int v, int f) -> void { st[v] = timer++; for (int u : adj[v]) { if (u != f) { dep[u] = dep[v] ^ 1; self(self, u, v); } } ft[v] = timer; }; dfs(dfs, 0, 0); std::vector<int> id(n); for (int i = 0; i < n; i++) { id[i] = st[i] * 1000 + ft[i]; } return id; } int find_next_station(int s, int t, std::vector<int> c) { int st_s = s / 1000, ft_s = s % 1000; int st_t = t / 1000, ft_t = t % 1000; std::vector<int> st(c.size()), ft(c.size()); for (int i = 0; i < c.size(); i++) { st[i] = c[i] / 1000, ft[i] = c[i] % 1000; } for (int i = 0; i < c.size(); i++) { if (st_s <= st[i] && st[i] < ft_s && st[i] <= st_t && st_t < ft[i]) { return c[i]; } } for (int i = 0; i < c.size(); i++) { if (st_s > st[i] || st[i] >= ft_s) { 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...