Submission #582815

#TimeUsernameProblemLanguageResultExecution timeMemory
582815LucaIlie기지국 (IOI20_stations)C++17
0 / 100
3043 ms2097152 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] ); } labels.resize( n ); l = 0; dfs( 0, -1, 0 ); return labels; } int find_next_station( int s, int t, vector<int> c ) { int l, r, d, i; d = s % 2; s /= 2; t /= 2; if ( d == 0 ) { l = s; r = c[c.size() - 2] + 1; } else { l = c[1] - 1; r = s; } if ( t < l || t > r ) return (d == 0 ? c.back() : c[0]); i = (d == 0 ? 1 : 0); while ( t < c[i] / 2 ) 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...