Submission #430223

#TimeUsernameProblemLanguageResultExecution timeMemory
430223APROHACKStations (IOI20_stations)C++14
0 / 100
3188 ms2097156 KiB
#include "stations.h" #include <bits/stdc++.h> #include <vector> #define PB push_back using namespace std; vector<int>ady[100001]; int lab[100001]; long long cur = 0; int dfs(int node, int parent){ for(auto i:ady[node]){ if(i==parent)continue; dfs(i, node); } lab[node]=cur++; return 1; } vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { vector<int>ab; for(int i = 0 ; i < n-1 ; i++){ ady[u[i]].PB(v[i]); ady[v[i]].PB(u[i]); } dfs(0, -1); for(int i = 0 ; i <= n-1 ; i++){ ab.PB(lab[i]); //cout<<lab[i]<<" "; } return ab; } int find_next_station(int s, int t, std::vector<int> c) { int li=0, ls=c.size()-1, pos; for(int i = 0 ; i <= ls ; i++){ cout<<c[i]<<" "; } cout<<endl<<s<<" "<<t<<endl; pos=(li+ls)/2; while(li+1<ls){ //cout<<li<<" "<<ls<<endl; pos=(li+ls)/2; if(c[pos]>=t)ls=pos; else li=pos; } for(int i = ls ; i >= li ; i--){ if(c[i]>=t)pos=i; } if(t>s)return c[c.size()-1]; //pos=(li+ls)/2; cout<<"a "<<c[pos]<<endl; return c[pos]; }
#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...