Submission #1181348

#TimeUsernameProblemLanguageResultExecution timeMemory
1181348guagua0407기지국 (IOI20_stations)C++20
0 / 100
308 ms592 KiB
#include "stations.h" //#include "stub.cpp" #include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define all(x) x.begin(),x.end() #define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { vector<vector<int>> adj(n); for(int i=0;i<n-1;i++){ adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } vector<int> st(n),en(n); int timer=-1; function<void(int,int)> dfs=[&](int v,int p){ st[v]=++timer; for(auto u:adj[v]){ if(u==p) continue; dfs(u,v); } en[v]=timer; }; dfs(0,-1); vector<int> label(n); for(int i=0;i<n;i++){ label[i]=st[i]*1000+en[i]; } return label; } int find_next_station(int s, int t, std::vector<int> C) { int a=s/1000; int b=s%1000; int c=t/1000; int d=t%1000; if(a<=c and d<=b){ for(auto v:C){ int e=v/1000; int f=v%1000; if(e<=c and d<=f) return v; } } else{ for(auto v:C){ int e=v/1000; int f=v%1000; if(e<=a and b<=f) return v; } } assert(false); }
#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...