# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
309814 | tjdgus4384 | Stations (IOI20_stations) | C++14 | 961 ms | 768 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<bits/stdc++.h>
#include "stations.h"
using namespace std;
bool visited[1001];
vector<int> path[1001];
int num1[1001], num2[1001];
int dfs1(int x, int cnt){
num1[x] = cnt; cnt++;
for(int i = 0;i < path[x].size();i++){
if(visited[path[x][i]]) continue;
visited[path[x][i]] = true;
cnt = dfs1(path[x][i], cnt);
}
return cnt;
}
int dfs2(int x){
int ret = num1[x];
for(int i = 0;i < path[x].size();i++){
if(visited[path[x][i]]) continue;
visited[path[x][i]] = true;
ret = max(ret, dfs2(path[x][i]));
}
return num2[x] = ret;
}
vector<int> label(int n, int k, vector<int> u, vector<int> v){
for(int i = 0;i < n-1;i++){
path[u[i]].push_back(v[i]);
path[v[i]].push_back(u[i]);
}
visited[0] = true;
dfs1(0, 0);
for(int i = 0;i < n;i++) visited[i] = false;
visited[0] = true;
dfs2(0);
vector<int> ret;
for(int i = 0;i < n;i++){
ret.push_back(num1[i]*1000+num2[i]);
}
return ret;
}
int find_next_station(int s, int t, vector<int> c){
int num2s = s%1000, num2t = t%1000;
int num1s = (s-num2s)/1000, num1t = (t-num2t)/1000;
for(int i = 1;i < c.size();i++){
num2[i] = c[i]%1000; num1[i] = (c[i]-num2[i])/1000;
}
if(num1t > num1s && num1t <= num2s){
int s = 1, e = c.size() - 1;
while(s < e){
int mid = (s+e+1)/2;
if(num1[mid] > num1t) e = mid-1;
else s = mid;
}
return c[s];
}
else 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... |