Submission #1168835

#TimeUsernameProblemLanguageResultExecution timeMemory
1168835aycnlStations (IOI20_stations)C++20
0 / 100
304 ms576 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; #define ii pair <int, int> #define ff first #define ss second #define bit(i) (1 << (i)) #define fto(i, a, b) for (int i = (a); i <= (b); ++i) #define fdto(i, a, b) for (int i = (a); i >= (b); --i) #define flto(i, a, b) for (int i = (a); (1 << i) <= (b); ++i) #define pb push_back #define pf push_front #define endl "\n" #define oo (int)(998244353) #define maxN 1005 #define l(s) s.length() #define vi vector <int> #define vii vector <ii> #define fat(x, y) for (auto x : y) #define fit(x, y) for (int x : y) #define fiit(x, y) for (ii x : y) #define EPS 1e-9 #define pi (acos(-1)) #define ll long long int tme; vi ke[maxN]; int pos[maxN], en[maxN], h[maxN]; void dfs(int u, int par) { pos[u] = tme++; for (int v : ke[u]) if (v != par) { h[v] = h[u] + 1; dfs(v, u); } en[u] = (tme - 1); } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { tme = 0; fto(i, 0, n-1) ke[i].clear(); fto(i, 0, n-2) { ke[u[i]].pb(v[i]); ke[v[i]].pb(u[i]); } dfs(0, -1); vii tmp; fto(i, 0, n-1) { if (h[i]%2 == 0) { tmp.pb({pos[i], -i}); } else { tmp.pb({en[i], i}); } } sort(tmp.begin(), tmp.end()); vi res(n, 0); fto(i, 0, n-1) res[abs(tmp[i].ss)] = i; //fto(i, 0, n-1) cout << res[i] << " "; cout << endl; return res; } int find_next_station(int s, int t, std::vector<int> c) { int sz = int(c.size()); if (sz == 1) return c[0]; if (s == 0) { fto(i, 0, sz - 1) if (c[i] >= t) return c[i]; return c[0]; } if (s < c[0]) { if (t > c[sz-2] || t < s) return c[sz-1]; fto(i, 0, sz-1) if (c[i] >= t) return c[i]; } else { if (t > s || t < c[1]) return c[0]; fdto(i, sz-1, 0) if (c[i] <= t) return c[i]; } return c[0]; }
#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...