제출 #1359052

#제출 시각아이디문제언어결과실행 시간메모리
1359052Charizard2021기지국 (IOI20_stations)C++20
0 / 100
2 ms3240 KiB
#include "stations.h"
#include<bits/stdc++.h>
using namespace std;
vector<vector<int> > adj;
vector<int> subtree;
vector<int> order;
int idx = 0;
void dfs(int u, int p){
	subtree[u] = 1;
	order[idx++] = u;
	for(int v : adj[u]){
		if(v != p){
			dfs(v, u);
			subtree[u] += subtree[v];
		}
	}
}
vector<int> label(int n, int k, vector<int> u, vector<int> v){
	adj.resize(n);
	subtree.resize(n);
	order.resize(n);
	for(int i = 0; i < n - 1; i++){
		adj[u[i]].push_back(v[i]);
		adj[v[i]].push_back(u[i]);
	}
	dfs(0, -1);
	vector<int> val(n);
	for(int i = 0; i < n; i++){
		val[order[i]] = 1001 * i + subtree[order[i]];
	}
	return val;
}
int find_next_station(int s, int t, vector<int> c){
	int s_ = s/1001;
	int t_ = t/1001;
	if(s_ > t_){
		return c[0];
	}
	else{
		int lst = -1;
		for(int x : c){
			int thing = x/1001;
			int subtreeSX = x % 1001;
			if(thing <= t_ && t_ < thing + subtreeSX){
				lst = x;
			}
		}
		return lst;
	}
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…