Submission #1080157

#TimeUsernameProblemLanguageResultExecution timeMemory
1080157UmairAhmadMirzaStations (IOI20_stations)C++17
0 / 100
609 ms684 KiB
#include <bits/stdc++.h> using namespace std; int const N=1005; vector<int> adj[N]; int tim=-1; int in[N],out[N]; void dfs(int node,int par=-1){ tim++; in[node]=tim; for(int i:adj[node]) if(i!=par) dfs(i,node); out[node]=tim; } vector<int> label(int n, int k, vector<int> u, vector<int> v){ for (int i = 0; i < n; ++i) { adj[i].clear(); tim=-1; in[i]=out[i]=0; } for (int i = 0; i < n-1; ++i) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } dfs(0); vector<int> val; for (int i = 0; i < n; ++i) val.push_back((in[i]*1000)+out[i]); // for(int i=0;i<n;i++) // cout<<val[i]<<' '; // cout<<endl; return val; } int find_next_station(int s, int t, vector<int> c){ // cout<<s<<' '<<t<<endl; int n=c.size(); int inn[n],outt[n]; int ti=t/1000,to=t%1000; for (int i = 0; i < n; ++i) { inn[i]=c[i]/1000; outt[i]=c[i]%1000; // cout<<inn[i]<<' '<<outt[i]<<endl; } // cout<<"target "<<ti<<' '<<to<<endl; for(int i=0;i<n;i++) if(inn[i]<=ti && to<=outt[i]) return c[i]; int si=s/1000,so=s%1000; // cout<<"source "<<si<<' '<<so<<endl; for(int i=0;i<n;i++) if(inn[i]<=si && so<=outt[i]) return c[i]; // cerr<<"it is not working"<<endl; return 0; }
#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...