# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
885253 | epicci23 | Stations (IOI20_stations) | C++17 | 3058 ms | 2097152 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;
#define pb push_back
typedef long long ll;
vector<int> v[1005];
int ans[1005],ti=0;
int ttin[1005],ttout[1005];
void dfs(int c,int p,int d){
ttin[c]=++ti;
for(int x:v[c]){
if(x==p) continue;
dfs(x,c,d+1);
}
ttout[c]=ti;
}
vector<int> label(int n, int k,vector<int> u,vector<int> w) {
vector<int> res(n);
for(int i=0;i<n-1;i++){
v[u[i]].pb(w[i]);
v[w[i]].pb(u[i]);
}
dfs(0,0,0);
for(int i=0;i<n;i++) res[i]=1001*ttout[i]+ttin[i];
return res;
}
int find_next_station(int s, int t,vector<int> c) {
int sin,sout,tin,tout;
sin=s%1001;
sout=(s-sin)/1001;
tin=t%1001;
tout=(t-tin)/1001;
int ust=-1;
for(int x:c){
int xin,xout;
xin=x%1001;
xout=(x-xin)/1001;
if(xin<=sin && sin<=xout){
ust=x;
continue;
}
if(xin<=tin && tin<=xout) return x;
}
return ust;
}
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... |