#include <bits/stdc++.h>
#include "Encoder.h"
using namespace std;
using ll = long long;
using vll = vector <ll>;
static void dfs (ll u, ll par, vector <vll> &adj, vll &codes, ll cancs) {
codes[u] = cancs | (u<<10);
cancs |= (1<<u);
for (ll v : adj[u]) {
if (v == par) continue;
dfs(v, u, adj, codes, cancs);
}
}
void Encode (int N, int u[], int v[]) {
vector <vll> adj(N+2, vll(0));
for (ll i = 0; i < N-1; i++) {
adj[u[i]].push_back(v[i]);
adj[v[i]].push_back(u[i]);
}
ll cancs=0;
vll codes(N+2, 0);
dfs(0, 0, adj, codes, cancs);
for (int i = 0; i < N; ++i) {
Code(i, codes[i]);
}
}
#include <bits/stdc++.h>
#include "Device.h"
using namespace std;
using ll = long long;
using vll = vector <ll>;
void InitDevice() {
;
}
int Answer (long long code1, long long code2) {
ll u = code1>>10;
ll v = code2>>10;
// cerr << code1 << ' ' << code2 << '\n';
// cerr << u << ' ' << v << "\n\n";
if (code1&(1<<v)) return 0;
if (code2&(1<<u)) return 1;
return 2;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4892 KB |
Output is correct |
2 |
Correct |
1 ms |
4876 KB |
Output is correct |
3 |
Correct |
2 ms |
4892 KB |
Output is correct |
4 |
Correct |
1 ms |
4892 KB |
Output is correct |
5 |
Correct |
1 ms |
4892 KB |
Output is correct |
6 |
Correct |
1 ms |
4892 KB |
Output is correct |
7 |
Correct |
1 ms |
4880 KB |
Output is correct |
8 |
Correct |
1 ms |
4880 KB |
Output is correct |
9 |
Correct |
1 ms |
5396 KB |
Output is correct |
10 |
Correct |
1 ms |
4892 KB |
Output is correct |
11 |
Correct |
1 ms |
4892 KB |
Output is correct |
12 |
Correct |
1 ms |
4892 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
3028 KB |
Wrong Answer [3] |
2 |
Halted |
0 ms |
0 KB |
- |