Submission #1190322

#TimeUsernameProblemLanguageResultExecution timeMemory
1190322boclobanchatStations (IOI20_stations)C++20
100 / 100
303 ms572 KiB
#include"stations.h" #include<bits/stdc++.h> using namespace std; const int MAXN=1024; vector<int> ds[MAXN]; int tag[MAXN],dis[MAXN],tdfs=0; void dfs(int i,int pre) { if(dis[i]%2==0) tag[i]=++tdfs; for(auto v:ds[i]) if(v!=pre) { dis[v]=dis[i]+1; dfs(v,i); } if(dis[i]%2==1) tag[i]=++tdfs; } vector<int> label(int n,int k,vector<int> u,vector<int> v) { tdfs=0; vector<int> labels(n); for(int i=0;i<n-1;i++) ds[u[i]].push_back(v[i]),ds[v[i]].push_back(u[i]); dfs(0,0); for(int i=0;i<n;i++) labels[i]=tag[i],ds[i].clear(); return labels; } int find_next_station(int s,int t,vector<int> c) { if(s<c[0]) { int pre=s; for(int j=0;j<c.size()-1;j++) if(pre<t&&t<=c[j]) return c[j]; return c[c.size()-1]; } else { int pre=s; for(int j=c.size()-1;j>0;j--) if(pre>t&&t>=c[j]) return c[j]; 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...