제출 #350174

#제출 시각아이디문제언어결과실행 시간메모리
350174amunduzbaev기지국 (IOI20_stations)C++14
0 / 100
3040 ms2097156 KiB
#include "stations.h" #ifndef EVAL #include "stub.cpp" #endif #include <bits/stdc++.h> using namespace std; #define sz(x) (int)x.size() #define pb push_back #define all(x) x.begin(), x.end() const int NN = 1e3+5; vector<int> edges[NN], val; int tim; void dfs(int u, int t, int p){ if(t) val[u] = ++tim; for(auto x:edges[u]) if(x != p) dfs(x, t^1, u); if(!t) val[u] = ++tim; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { for(int i=0;i<n-1;i++){ edges[u[i]].pb(v[i]); edges[v[i]].pb(u[i]); } val.resize(n); tim = -1; dfs(0, 1, -1); return val; } int find_next_station(int s, int t, vector<int> c){ sort(all(c)); if(s < c[0]){ int p = c[sz(c)-1]; if(t >= p || t < s) return p; int i = 0; while(c[i] < t && i < sz(c)-1) i++; return c[i]; } else{ int p = c[0]; if(t > s || t < c[1]) return p; int i = sz(c)-1; while(c[i] > t && i > 0) i--; return c[i]; } }
#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...