Submission #1175524

#TimeUsernameProblemLanguageResultExecution timeMemory
1175524hyakupStations (IOI20_stations)C++20
100 / 100
306 ms596 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; vector<int> label(int n, int k, vector<int> u, vector<int> v) { vector<int> resp(n); 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]); } int tempo = 0; function<void(int, int, int)> dfs = [&]( int cur, int pai, int t ){ if( t ) resp[cur] = ++tempo; for( int viz : adj[cur] ) if( viz != pai ) dfs( viz, cur, t^1 ); if( !t ) resp[cur] = ++tempo; }; dfs( 0, 0, 1 ); return resp; } int find_next_station(int s, int t, vector<int> adj ) { if( adj[0] < s ){ sort( adj.rbegin(), adj.rend() ); int last = s; for( int i = 0; i + 1 < (int)adj.size(); i++ ){ if( adj[i] <= t && t < last ) return adj[i]; last = adj[i]; } return adj.back(); } else{ sort( adj.begin(), adj.end() ); int last = s; for( int i = 0; i + 1 < (int)adj.size(); i++ ){ if( last < t && t <= adj[i] ) return adj[i]; last = adj[i]; } return adj.back(); } }
#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...