Submission #350837

#TimeUsernameProblemLanguageResultExecution timeMemory
350837tengiz05Stations (IOI20_stations)C++17
0 / 100
951 ms1108 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; vector<int> edges[1005]; int a[1005]; vector<bool> used; int timer=0; void dfs(int u, int d){ if(d==0)a[u] = timer,timer++; used[u] = true; for(auto v:edges[u]){ if(used[v])continue; dfs(v,d^1); }if(d==1)a[u] = timer,timer++; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { for(int i=0;i<n;i++)edges[i].clear(); for(int i=0;i<n-1;i++){ edges[u[i]].push_back(v[i]); edges[v[i]].push_back(u[i]); } timer=0; used.assign(n,0); dfs(0,0); vector<int> ans(n); for(int i=0;i<n;i++)ans[i] = a[i]; return ans; } /* 1 5 10 0 1 1 2 2 3 3 4 3 1 3 121 1 4 121 0 1 122 */ int find_next_station(int s, int t, vector<int> c) { if(c[c.size()-1] < s){ int ans = c[0]; for(auto x : c){ if(min(s, x) <= t && t <= max(s, x))return x; }return ans; }else { for(auto x : c)if(min(s, x) <= t && t <= max(s, x))return x; return c[c.size()-1]; } }
#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...