Submission #1132378

#TimeUsernameProblemLanguageResultExecution timeMemory
1132378StefanSebezStations (IOI20_stations)C++20
5 / 100
302 ms2868 KiB
#include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define ll long long #define ld long double const int N=1e5+50; vector<int>E[N]; int in[N],nc=-1; bool was[N]; void DFS(int u){ in[u]=++nc;was[u]=true; for(auto i:E[u]){ if(was[i]) continue; DFS(i); } return; } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v){ for(int i=0;i<n-1;i++){ E[u[i]].pb(v[i]); E[v[i]].pb(u[i]); } int root=0; for(int i=0;i<n;i++){ if(E[i].size()==1) root=i; } DFS(root); vector<int>lbl;for(int i=0;i<n;i++) lbl.pb(in[i]); for(int i=0;i<=n;i++) E[i].clear(),in[i]=0,nc=-1,was[i]=false; return lbl; } int find_next_station(int s, int t, std::vector<int> c){ int res=c[0]; if(s<t){ for(int i=0;i<c.size();i++){ int u=c[i]; if(u>s) res=u; } } else{ for(int i=0;i<c.size();i++){ int u=c[i]; if(u<s) res=u; } } return res; }
#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...