Submission #379481

#TimeUsernameProblemLanguageResultExecution timeMemory
379481rocks03Stations (IOI20_stations)C++14
52.32 / 100
1069 ms1224 KiB
//#pragma GCC target("avx2") //#pragma GCC optimization("O3") //#pragma GCC optimization("unroll-loops") #include<bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int, int> #define pll pair<ll, ll> #define ff first #define ss second #define pb push_back #define SZ(x) ((int)(x).size()) #define all(x) x.begin(), x.end() #define rep(i, a, b) for(int i = (a); i < (b); i++) #define Re(i, a, b) for(int i = (a); i >= (b); i--) mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const int MAXN = 1e3; vector<vector<int>> g; int timer; void dfs(int v, int p, vector<int>& labels){ int tin = timer++; for(int u : g[v]){ if(u ^ p){ dfs(u, v, labels); } } int tou = timer - 1; labels[v] = MAXN * tin + tou; } vector<int> label(int N, int K, vector<int> u, vector<int> v){ g.resize(N); rep(i, 0, N){ g[i].clear(); } auto add_edge = [&](int a, int b){ g[a].pb(b); g[b].pb(a); }; rep(i, 0, N - 1){ add_edge(u[i], v[i]); } vector<int> labels(N); timer = 0; dfs(0, -1, labels); return labels; } int find_next_station(int a, int b, vector<int> c){ auto get_label = [&](int x){ pii ans = {x / MAXN, x % MAXN}; return ans; }; auto ancestor = [&] (pii u, pii v){ bool is = (u.ff <= v.ff && v.ss <= u.ss); return is; }; pii s = get_label(a), t = get_label(b); int parent; for(int x : c){ pii u = get_label(x); if(ancestor(s, u)){ if(ancestor(u, t)) return x; } else{ parent = x; } } return parent; }

Compilation message (stderr)

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:61:9: warning: 'parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
   61 |     int parent;
      |         ^~~~~~
#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...