제출 #809021

#제출 시각아이디문제언어결과실행 시간메모리
809021adrilen기지국 (IOI20_stations)C++17
0 / 100
1454 ms2097152 KiB
#include "stations.h"
//#pragma GCC optimize("O3")
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using arr = array<int, 2>;
using arrr = array<int, 3>;

constexpr int maxn = 1e3;

basic_string <int> adj[maxn];

vector <int> output;

int t = 0;
void dfs(int p, int par)
{
	output[p] = t++;
	for (int i : adj[p])
	{
		if (i == par) continue;
		dfs(i, p);
	}
}


std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
	
	for (int i = 0; i < n - 1; i++)
	{
		adj[u[i]].push_back(v[i]);
		adj[v[i]].push_back(u[i]);
	}

	int start = -1;
	for (int i = 0; i < n; i++) {
		if (adj[i].size() == 1ull) {
			start = i;
			break;
		}
	}

	output.assign(n, 0);
	dfs(start, -1);
	return output;
}

int find_next_station(int s, int T, std::vector<int> c) {

	if (c.size() == 1ull) return c.front();

	if (T < c.front()) return c.front();

	auto it = upper_bound(c.begin(), c.end(), T) - 1;

	return *it;
}
#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...