Submission #1209803

#TimeUsernameProblemLanguageResultExecution timeMemory
1209803a.pendovStations (IOI20_stations)C++20
0 / 100
307 ms616 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; const long long MAXN=1009; long long sz[MAXN]; long long ans[MAXN]; bool vis[MAXN]; vector<int> edg[MAXN]; long long dfs(int start) { sz[start]=1; vis[start]=1; for(auto i:edg[start]) { if(vis[i])continue; sz[start]+=dfs(i); } return sz[start]; } void solve(int start,bool b,int l,int r) { vis[start]=0; if(b) { ans[start]=r; r--; } else { ans[start]=l; l++; } for(auto i:edg[start]) { if(!vis[i])continue; solve(i,!b,l,l+sz[i]-1); l+=sz[i]; } } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { std::vector<int> labels(n); for(int i=0; i<n-1; i++) { edg[u[i]].push_back(v[i]); edg[v[i]].push_back(u[i]); } dfs(0); solve(0,1,0,n-1); for(int i=0; i<n; i++)labels[i]=i; return labels; } int find_next_station(int s, int t, std::vector<int> c) { sort(c.begin(),c.end()); return 0; if(s<c[0]) { if(t<s)return c[c.size()-1]; if(t>=c[c.size()-1])return c[c.size()-1]; for(int i=0; i<c.size()-1; i++) { if(t<=c[i])return c[i]; } } else { if(t>s)return c[0]; if(t<=c[0])return c[0]; for(int i=c.size()-1; i>0; i--) { if(t<=c[i])return c[i]; } } return 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...