Submission #312001

#TimeUsernameProblemLanguageResultExecution timeMemory
312001natsugirlStations (IOI20_stations)C++17
100 / 100
1011 ms1052 KiB
/* by Natsu Kinmoe */ #include <bits/stdc++.h> using namespace std; #define SZ(x) ((int)(x).size()) #define all(x) (x).begin(), (x).end() #define loop(i, n) for(int i = 0; i < (n); i++) #define cont(i, n) for(int i = 1; i <= (n); i++) #define circ(i, a, b) for(int i = (a); i <= (b); i++) #define range(i, a, b, c) for(int i = (a); ((c) > 0 ? i <= (b) : i >= (b)); i += (c)) #define foreach(it, v) for(__typeof((v).begin()) it = (v).begin(); it != (v).end(); it++) #define y0 y0O0OO00OO0OO0OO0OOO00OO0OO0O0O000OO0 #define y1 y1II11II11III11I1III11II111IIII1II1I1 #define pub push_back #define pob pop_back #define mak make_pair typedef long long ll; typedef long double lf; const int Inf = 0x3f3f3f3f; const ll INF = 0x3f3f3f3f3f3f3f3fll; /* Source code starts here */ #include "stations.h" vector<int> label(int n, int k, vector<int> u, vector<int> v) { vector<vector<int> > nei(n); loop(i, n - 1) nei[u[i]].pub(v[i]), nei[v[i]].pub(u[i]); vector<int> res(n); int tmc = 0; function<void(int, int, int)> dfs = [&](int now, int lst, int lvl) { if(lvl == 0) res[now] = ++tmc; loop(i, SZ(nei[now])) { int to = nei[now][i]; if(to == lst) continue; dfs(to, now, lvl ^ 1); } if(lvl == 1) res[now] = ++tmc; }; dfs(0, -1, 0); return res; } int find_next_station(int s, int t, vector<int> c) { vector<int> cs = c; int fa; sort(all(cs)); if(cs[0] > s) fa = cs.back(), cs.pob(), cs.insert(cs.begin(), s); else fa = cs[0], cs.erase(cs.begin()), cs.pub(s); loop(i, SZ(cs)) if(cs[i] == t) return t; loop(i, SZ(cs) - 1) { int l = cs[i], r = cs[i + 1]; if(t >= l && t <= r) { if(cs[0] == s) return r; else return l; } } return fa; }
#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...