#include "stations.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
#define ii pair<int,int>
#define x first
#define y second
vector<int> labels;
vector<vector<int>> g;
int tme;
// void dfs1(int i,int f=0,int t=0, int s=0){
// int tin=++tme;
// for(auto u:g[i]){
// if(u!=f){
// dfs1(u,i,(t+1)%2,(s+1)%3);
// }
// }
// int tout=tme;
// if(t==0){
// labels[i]=6*tin+3*t+s;
// }
// else{
// labels[i]=6*(tin+tout)+3*t+s;
// }
// }
void dfs1(int i, int f=0){
int tin=++tme;
for(auto u:g[i]){
if(u!=f){
dfs1(u,i);
}
}
int tout=tme;
labels[i]=tin*1000+tout;
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
tme=-1;
labels.assign(n,-1);
for(int i=0; i<n; i++){
labels[i]=i;
}
return labels;
g.assign(n,vector<int>());
for(int i=0; i<n-1; i++){
g[u[i]].push_back(v[i]);
g[v[i]].push_back(u[i]);
}
dfs1(0);
return labels;
}
ii get(int x){
return ii(x/3%2,x%3);
}
int find_next_station(int s, int t, std::vector<int> c) {
// if(t<s){
// return c[0];
// }
// else{
// return c[1];
// }
int p=t;
while(t){
t=(t-1)/2;
if(t==s){
return p;
}
p=t;
}
return (s-1)/2;
// int tin=t/1000;
// int tout=t%1000;
// int sin=s/1000;
// int sout=s%1000;
// int f;
// for(auto i:c){
// int in=i/1000;
// int out=i%1000;
// if(in<sin){
// f=i;
// continue;
// }
// if (tin>=in&&tout<=out){
// return i;
// }
// }
// return f;
// ii r=get(s);
// s/=6;
// vector<pair<ii,int>> cld;
// int f=-1;
// if(r.x==0){
// int prev=s;
// for(auto i:c){
// if(get(i).y!=(r.y+1)%3){
// f=i;
// continue;
// }
// int k=i/6;
// cld.emplace_back(ii(prev+1,k-(prev+1)),i);
// prev=k-(prev+1);
// }
// }
// else{
// for(auto i:c){
// if(get(i).y!=(r.y+1)%3){
// f=i;
// continue;
// }
// if(!cld.empty())
// cld.back().x.y=i/6-1;
// cld.emplace_back(ii(i/6,-1),i);
// }
// if(!cld.empty()){
// cld.back().x.y=s-(cld[0].x.x-1);
// }
// }
// ii h=get(t);
// t/=6;
// for(auto i:cld){
// if(h.x==0&&i.x.x<=t&&i.x.y>=t){
// return i.y;
// }
// else if(h.x==1&&2*i.x.x<=t&&2*i.x.y>=t){
// return i.y;
// }
// }
// return f;
}
/*
1
5 100
0 1
1 2
1 3
2 4
3
0 1 2
1 2 2
1 4 2*/
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
491 ms |
400 KB |
Wrong query response. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
502 ms |
484 KB |
Output is correct |
2 |
Correct |
499 ms |
528 KB |
Output is correct |
3 |
Correct |
884 ms |
404 KB |
Output is correct |
4 |
Correct |
633 ms |
532 KB |
Output is correct |
5 |
Correct |
573 ms |
484 KB |
Output is correct |
6 |
Correct |
465 ms |
492 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
542 ms |
540 KB |
Wrong query response. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
899 ms |
528 KB |
Output is correct |
2 |
Incorrect |
679 ms |
488 KB |
Wrong query response. |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
527 ms |
484 KB |
Wrong query response. |
2 |
Halted |
0 ms |
0 KB |
- |