Submission #1257591

#TimeUsernameProblemLanguageResultExecution timeMemory
1257591makravCity (JOI17_city)C++20
22 / 100
252 ms22716 KiB
#include "Encoder.h"
#include <bits/stdc++.h>

using namespace std;

#define pb push_back

void Encode(int N, int A[], int B[])
{
	vector<long long> tin(N), tout(N);
	vector<vector<int>> g(N);
	for (int i = 0; i < N - 1; i++) {
		g[A[i]].pb(B[i]);
		g[B[i]].pb(A[i]);
	}
	long long tim  =0;
	auto dfs = [&](int v, int p, auto &&self) -> void {
		tin[v] = tim++;
		for (auto &u : g[v]) {
			if (u != p) self(u, v, self);
		}
		tout[v] = tim - 1;
	};	
	dfs(0, 0, dfs);
	for (int i = 0; i < N; i++) {
		Code(i, tin[i] * 1ll * 250010 + tout[i]);
	}
}
#include "Device.h"

void InitDevice()
{
}

int Answer(long long S, long long T)
{
	long long tin1 = S / 250010, tout1 = S % 250010, tin2 = T / 250010, tout2 = T % 250010;
	if (tin1 <= tin2 && tout2 <= tout1) {
		return 1;
	}
	if (tin2 <= tin1 && tout1 <= tout2) return 0;
	return 2;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...