#include "Encoder.h"
#include <bits/stdc++.h>
using namespace std;
#define PB push_back
template<class T>
using vec = vector<T>;
using ll = long long;
static ll tim = 0;
static vec<vec<int>> adj;
static vec<ll> sz;
static ll dfs(int u, int p) {
ll t = tim++;
sz[u] = 1;
for (int v : adj[u]) {
if (v == p) continue;
sz[u] += dfs(v, u);
}
ll c = (t << 18ll) + sz[u];
Code(u, c);
return sz[u];
}
void Encode(int N, int A[], int B[])
{
adj.assign(N, vec<int>());
sz.assign(N, 0);
for (int i = 0; i < N - 1; i++) {
adj[A[i]].PB(B[i]);
adj[B[i]].PB(A[i]);
}
dfs(0, 0);
}
#include "Device.h"
#include <bits/stdc++.h>
using namespace std;
template<class T>
using vec = vector<T>;
using ll = long long;
void InitDevice()
{
}
int Answer(long long S, long long T)
{
ll t1 = (S >> 18ll);
ll t2 = (T >> 18ll);
ll s1 = (S & ((1ll << 18ll) - 1ll));
ll s2 = (T & ((1ll << 18ll) - 1ll));
if (t1 <= t2 && t2 < t1 + s1) return 1;
if (t2 <= t1 && t1 < t2 + s2) return 0;
return 2;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |