# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
510376 | jamezzz | Stations (IOI20_stations) | C++17 | 1466 ms | 796 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "stations.h"
#include <bits/stdc++.h>
using namespace std;
int pre[1005],pst[1005],cnt;
vector<int> AL[1005];
void dfs(int u){
pre[u]=cnt++;
for(int v:AL[u]){
if(pre[v]==-1)dfs(v);
}
pst[u]=cnt-1;
}
vector<int> label(int n,int k,vector<int> u,vector<int> v){
vector<int> l(n);
for(int i=0;i<n;++i)AL[i].clear();
memset(pre,-1,sizeof pre);
memset(pst,-1,sizeof pst);
cnt=0;
for(int i=0;i<n-1;++i){
AL[u[i]].push_back(v[i]);
AL[v[i]].push_back(u[i]);
}
dfs(0);
for(int i=0;i<n;++i)l[i]=pre[i]*1000+pst[i];
return l;
}
int find_next_station(int s,int t,vector<int> c){
int pres=s/1000,psts=s%1000;
int pret=t/1000,pstt=t%1000;
for(int i=1;i<c.size();++i){
int u=c[i];
int preu=u/1000,pstu=u%1000;
if(preu<=pret&&pstt<=pstu)return u;
}
return c[0];
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |