Submission #588994

#TimeUsernameProblemLanguageResultExecution timeMemory
588994snasibov05Stations (IOI20_stations)C++14
16 / 100
931 ms636 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; const int mx = 1e3; const int mxl = 1e6; vector<int> label(int n, int k, vector<int> u, vector<int> v) { vector<vector<int>> ed(n); for (int i = 0; i < n-1; ++i) { ed[u[i]].push_back(v[i]); ed[v[i]].push_back(u[i]); } int rt = 0; for (int i = 0; i < n; ++i){ if (ed[i].size() > ed[rt].size()) rt = i; } int x = 1; vector<int> label(n); for (auto to : ed[rt]){ int prev = rt; int l = x * mx - 1; int cur = to; while (ed[cur].size() != 1){ label[cur] = l--; if (ed[cur][0] == prev) prev = cur, cur = ed[cur][1]; else prev = cur, cur = ed[cur][0]; } label[cur] = l; x++; } label[rt] = mxl; return label; } int find_next_station(int s, int t, vector<int> c) { if (s == mxl){ for (auto x : c){ if (x / mx == t / mx) return x; } } else if (s / mx == t / mx){ if (s > t){ for (auto x : c){ if (s > x) return x; } } else{ for (auto x : c){ if (s < x) return x; } } } else{ for (auto x : c){ if (s < x) return x; } } 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...