제출 #582801

#제출 시각아이디문제언어결과실행 시간메모리
582801LucaIlie기지국 (IOI20_stations)C++17
0 / 100
1 ms464 KiB
//#include "stations.h" #include <bits/stdc++.h> #define MAX_N 1000 using namespace std; int l; vector<int> edges[MAX_N]; vector<int> labels; void dfs( int u, int p, int d ) { if ( d == 0 ) labels[u] = l * 2; l++; for ( int v: edges[u] ) { if ( v != p ) dfs( v, u, !d ); } if ( d == 1 ) labels[u] = l * 2 + 1; if ( edges[u].size() > 1 ) l++; } vector<int> label( int n, int k, vector<int> u, vector<int> v ) { for ( int i = 0; i < n - 1; i++ ) { edges[u[i]].push_back( v[i] ); edges[v[i]].push_back( u[i] ); } l = 0; dfs( 0, -1, 0 ); return labels; } int find_next_station( int s, int t, vector<int> c ) { int l, r, i; if ( s % 2 == 0 ) { l = s / 2; r = c.back() / 2 + 1; } else { l = c[1] / 2 - 1; r = s / 2; } s /= 2; t /= 2; if ( t < l || t > r ) return c[0]; i = 1; while ( t < c[i] ) i++; return c[i]; }
#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...