#include "grader.h"
#include "encoder.h"
#include <bits/stdc++.h>
using namespace std;
void encode(int nv, int nh, int ne, int *v1, int *v2) {
vector<vector<int>> g(nv);
for (int i = 0; i < ne; i++) {
g[v1[i]].push_back(v2[i]);
g[v2[i]].push_back(v1[i]);
}
vector<int> par(nv, -1);
vector<bool> was(nv);
function<void(int, int)> Dfs = [&](int v, int pv) {
par[v] = pv;
was[v] = true;
for (int u : g[v]) {
if (was[u]) {
continue;
}
Dfs(u, v);
}
};
Dfs(0, 0);
for (int v = 0; v < nv; v++) {
for (int b = 0; b < 10; b++) {
encode_bit(par[v] >> b & 1);
}
}
for (int h = 0; h < nh; h++) {
vector<int> dist(nv, -1);
dist[h] = 0;
vector<int> que(1, h);
for (int b = 0; b < (int) que.size(); b++) {
int i = que[b];
for (int j : g[i]) {
if (dist[j] == -1) {
dist[j] = dist[i] + 1;
que.push_back(j);
}
}
}
for (int v = 0; v < nv; v++) {
if (v + 2 >= nv) {
if (dist[v] == dist[par[v]]) {
encode_bit(0);
encode_bit(1);
}
if (dist[v] == dist[par[v]] + 1) {
encode_bit(1);
encode_bit(0);
}
if (dist[v] == dist[par[v]] - 1) {
encode_bit(0);
encode_bit(0);
}
continue;
}
int num = 0;
for (int t = v; t < v + 3; t++) {
num = num * 3 + (dist[t] - dist[par[t]] + 1);
}
for (int b = 0; b < 5; b++) {
encode_bit(num >> b & 1);
}
v += 2;
}
}
return;
}
#include "grader.h"
#include "decoder.h"
#include <bits/stdc++.h>
using namespace std;
void decode(int nv, int nh) {
vector<int> par(nv);
for (int v = 0; v < nv; v++) {
for (int b = 0; b < 10; b++) {
if (decode_bit()) {
par[v] += (1 << b);
}
}
}
vector<vector<int>> ch(nv);
for (int i = 1; i < nv; i++) {
ch[par[i]].push_back(i);
}
for (int h = 0; h < nh; h++) {
vector<int> d(nv);
for (int v = 0; v < nv; v++) {
if (v + 2 >= nv) {
int t = 0;
t += 2 * decode_bit();
t += decode_bit();
d[v] = t - 1;
continue;
}
int num = 0;
for (int b = 0; b < 5; b++) {
if (decode_bit()) {
num += (1 << b);
}
}
for (int t = v + 2; t >= v; t--) {
d[t] = (num % 3) - 1;
num /= 3;
}
v += 2;
}
vector<int> dist(nv, -1);
dist[h] = 0;
vector<int> que(1, h);
for (int b = 0; b < (int) que.size(); b++) {
int i = que[b];
for (int j : ch[i]) {
if (dist[j] == -1) {
dist[j] = dist[i] + d[j];
que.push_back(j);
}
}
if (dist[par[i]] == -1) {
dist[par[i]] = dist[i] - d[i];
que.push_back(par[i]);
}
}
for (int v = 0; v < nv; v++) {
hops(h, v, dist[v]);
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
158 ms |
16548 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
2 |
Correct |
1 ms |
11272 KB |
Output is correct - 77 call(s) of encode_bit() |
3 |
Correct |
14 ms |
11524 KB |
Output is correct - 63000 call(s) of encode_bit() |
4 |
Correct |
1 ms |
11268 KB |
Output is correct - 95 call(s) of encode_bit() |
5 |
Correct |
16 ms |
11524 KB |
Output is correct - 63000 call(s) of encode_bit() |
6 |
Correct |
15 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
7 |
Correct |
27 ms |
11756 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
8 |
Correct |
12 ms |
11268 KB |
Output is correct - 67282 call(s) of encode_bit() |
9 |
Correct |
13 ms |
11268 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
10 |
Correct |
13 ms |
11524 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
11 |
Correct |
16 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
12 |
Correct |
16 ms |
11256 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
13 |
Correct |
30 ms |
12028 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
14 |
Correct |
20 ms |
11520 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
15 |
Correct |
14 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
16 |
Correct |
28 ms |
11872 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
17 |
Correct |
25 ms |
11852 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
18 |
Correct |
31 ms |
11952 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
19 |
Correct |
20 ms |
11864 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
20 |
Correct |
38 ms |
14248 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
21 |
Correct |
44 ms |
14252 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
22 |
Correct |
27 ms |
12008 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
23 |
Correct |
48 ms |
14516 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
158 ms |
16548 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
2 |
Correct |
1 ms |
11272 KB |
Output is correct - 77 call(s) of encode_bit() |
3 |
Correct |
14 ms |
11524 KB |
Output is correct - 63000 call(s) of encode_bit() |
4 |
Correct |
1 ms |
11268 KB |
Output is correct - 95 call(s) of encode_bit() |
5 |
Correct |
16 ms |
11524 KB |
Output is correct - 63000 call(s) of encode_bit() |
6 |
Correct |
15 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
7 |
Correct |
27 ms |
11756 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
8 |
Correct |
12 ms |
11268 KB |
Output is correct - 67282 call(s) of encode_bit() |
9 |
Correct |
13 ms |
11268 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
10 |
Correct |
13 ms |
11524 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
11 |
Correct |
16 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
12 |
Correct |
16 ms |
11256 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
13 |
Correct |
30 ms |
12028 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
14 |
Correct |
20 ms |
11520 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
15 |
Correct |
14 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
16 |
Correct |
28 ms |
11872 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
17 |
Correct |
25 ms |
11852 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
18 |
Correct |
31 ms |
11952 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
19 |
Correct |
20 ms |
11864 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
20 |
Correct |
38 ms |
14248 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
21 |
Correct |
44 ms |
14252 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
22 |
Correct |
27 ms |
12008 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
23 |
Correct |
48 ms |
14516 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
158 ms |
16548 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
2 |
Correct |
1 ms |
11272 KB |
Output is correct - 77 call(s) of encode_bit() |
3 |
Correct |
14 ms |
11524 KB |
Output is correct - 63000 call(s) of encode_bit() |
4 |
Correct |
1 ms |
11268 KB |
Output is correct - 95 call(s) of encode_bit() |
5 |
Correct |
16 ms |
11524 KB |
Output is correct - 63000 call(s) of encode_bit() |
6 |
Correct |
15 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
7 |
Correct |
27 ms |
11756 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
8 |
Correct |
12 ms |
11268 KB |
Output is correct - 67282 call(s) of encode_bit() |
9 |
Correct |
13 ms |
11268 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
10 |
Correct |
13 ms |
11524 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
11 |
Correct |
16 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
12 |
Correct |
16 ms |
11256 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
13 |
Correct |
30 ms |
12028 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
14 |
Correct |
20 ms |
11520 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
15 |
Correct |
14 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
16 |
Correct |
28 ms |
11872 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
17 |
Correct |
25 ms |
11852 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
18 |
Correct |
31 ms |
11952 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
19 |
Correct |
20 ms |
11864 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
20 |
Correct |
38 ms |
14248 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
21 |
Correct |
44 ms |
14252 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
22 |
Correct |
27 ms |
12008 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
23 |
Correct |
48 ms |
14516 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
158 ms |
16548 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
2 |
Correct |
1 ms |
11272 KB |
Output is correct - 77 call(s) of encode_bit() |
3 |
Correct |
14 ms |
11524 KB |
Output is correct - 63000 call(s) of encode_bit() |
4 |
Correct |
1 ms |
11268 KB |
Output is correct - 95 call(s) of encode_bit() |
5 |
Correct |
16 ms |
11524 KB |
Output is correct - 63000 call(s) of encode_bit() |
6 |
Correct |
15 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
7 |
Correct |
27 ms |
11756 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
8 |
Correct |
12 ms |
11268 KB |
Output is correct - 67282 call(s) of encode_bit() |
9 |
Correct |
13 ms |
11268 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
10 |
Correct |
13 ms |
11524 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
11 |
Correct |
16 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
12 |
Correct |
16 ms |
11256 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
13 |
Correct |
30 ms |
12028 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
14 |
Correct |
20 ms |
11520 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
15 |
Correct |
14 ms |
11532 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
16 |
Correct |
28 ms |
11872 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
17 |
Correct |
25 ms |
11852 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
18 |
Correct |
31 ms |
11952 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
19 |
Correct |
20 ms |
11864 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
20 |
Correct |
38 ms |
14248 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
21 |
Correct |
44 ms |
14252 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
22 |
Correct |
27 ms |
12008 KB |
Output is partially correct - 70012 call(s) of encode_bit() |
23 |
Correct |
48 ms |
14516 KB |
Output is partially correct - 70012 call(s) of encode_bit() |