#include "grader.h"
#include "encoder.h"
#include <bits/stdc++.h>
using namespace std;
const int N = 1000 + 3;
const int H = 36 + 3;
const int INF = 1e9;
static vector<int> adj[N];
static int n, h, m, par[N], d[N];
static bool vis[N];
void encode_num(int x){
for(int i = 9; i >= 0; --i)
encode_bit((x >> i) & 1);
}
void encode_diff(int diff){
if(diff == -1){
encode_bit(0);
encode_bit(0);
}
else if(!diff){
encode_bit(0);
encode_bit(1);
}
else{
encode_bit(1);
encode_bit(0);
}
}
void dfs(int u, int p = -1){
vis[u] = true;
par[u] = p;
for(int to: adj[u])
if(to != p)
dfs(to, u);
}
void bfs(int u){
fill(d, d + n, INF);
queue<int> q;
q.push(u);
while(!q.empty()){
int v = q.front();
q.pop();
for(int to: adj[v])
if(d[to] == INF){
d[to] = d[u] + 1;
q.push(to);
}
}
for(int i = 1; i < n; ++i)
encode_diff(d[u] - d[par[u]]);
}
void encode(int _nv, int _nh, int _ne, int *v1, int *v2){
n = _nv, h =_nh, m = _ne;
for(int i = 0; i < n; ++i) adj[i].clear();
for(int i = 0; i < m; ++i){
adj[v1[i]].push_back(v2[i]);
adj[v2[i]].push_back(v1[i]);
}
fill(vis, vis + n, false);
dfs(0);
for(int i = 1; i < n; ++i)
encode_num(par[i]);
for(int i = 1; i < h; ++i)
bfs(i);
}
#include "grader.h"
#include "decoder.h"
#include <bits/stdc++.h>
using namespace std;
const int N = 1000 + 3;
const int H = 36 + 3;
static int n, h, par[N], d[N];
static vector<int> adj[N];
static bool vis[N];
int decode_diff(){
int bit1 = decode_bit(), bit2 = decode_bit();
if(bit1) return 1;
if(bit2) return 0;
return -1;
}
int decode_num(){
int num = 0;
for(int i = 9; i >= 0; --i)
if(decode_bit())
num += (1 << i);
return num;
}
void dfs(int u){
hops(0, u, d[u]);
for(int to: adj[u]){
if(to == par[u]) continue;
d[to] = d[u] + 1;
dfs(to);
}
}
void dfs2(int hub, int u, int ans){
hops(hub, u, ans);
vis[u] = true;
for(int to: adj[u])
if(!vis[to]){
if(to == par[u]) dfs2(hub, to, ans - d[u]);
else dfs2(hub, to, ans + d[u]);
}
}
void decode(int _nv, int _nh) {
n = _nv, h = _nh;
if(n == 1){
hops(0, 0, 0);
return;
}
for(int i = 0; i < n; ++i) adj[i].clear();
for(int i = 1; i < n; ++i){
par[i] = decode_num();
adj[par[i]].push_back(i);
adj[i].push_back(par[i]);
}
d[0] = 0;
dfs(0);
for(int i = 1; i < h; ++i){
for(int j = 1; j < n; ++j)
d[j] = decode_diff();
fill(vis, vis + n, false);
dfs2(i, i, 0);
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
392 ms |
262148 KB |
Execution killed with signal 9 |
2 |
Runtime error |
160 ms |
262148 KB |
Execution killed with signal 9 |
3 |
Runtime error |
171 ms |
262148 KB |
Execution killed with signal 9 |
4 |
Runtime error |
158 ms |
262144 KB |
Execution killed with signal 9 |
5 |
Runtime error |
183 ms |
262148 KB |
Execution killed with signal 9 |
6 |
Runtime error |
168 ms |
262148 KB |
Execution killed with signal 9 |
7 |
Runtime error |
199 ms |
262148 KB |
Execution killed with signal 9 |
8 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
9 |
Runtime error |
164 ms |
262144 KB |
Execution killed with signal 9 |
10 |
Runtime error |
173 ms |
262148 KB |
Execution killed with signal 9 |
11 |
Runtime error |
181 ms |
262144 KB |
Execution killed with signal 9 |
12 |
Incorrect |
31 ms |
5600 KB |
Output isn't correct |
13 |
Runtime error |
196 ms |
262148 KB |
Execution killed with signal 9 |
14 |
Runtime error |
170 ms |
262148 KB |
Execution killed with signal 9 |
15 |
Runtime error |
164 ms |
262144 KB |
Execution killed with signal 9 |
16 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
17 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
18 |
Runtime error |
195 ms |
262148 KB |
Execution killed with signal 9 |
19 |
Runtime error |
180 ms |
262148 KB |
Execution killed with signal 9 |
20 |
Runtime error |
221 ms |
262148 KB |
Execution killed with signal 9 |
21 |
Runtime error |
227 ms |
262148 KB |
Execution killed with signal 9 |
22 |
Runtime error |
193 ms |
262148 KB |
Execution killed with signal 9 |
23 |
Runtime error |
217 ms |
262148 KB |
Execution killed with signal 9 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
392 ms |
262148 KB |
Execution killed with signal 9 |
2 |
Runtime error |
160 ms |
262148 KB |
Execution killed with signal 9 |
3 |
Runtime error |
171 ms |
262148 KB |
Execution killed with signal 9 |
4 |
Runtime error |
158 ms |
262144 KB |
Execution killed with signal 9 |
5 |
Runtime error |
183 ms |
262148 KB |
Execution killed with signal 9 |
6 |
Runtime error |
168 ms |
262148 KB |
Execution killed with signal 9 |
7 |
Runtime error |
199 ms |
262148 KB |
Execution killed with signal 9 |
8 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
9 |
Runtime error |
164 ms |
262144 KB |
Execution killed with signal 9 |
10 |
Runtime error |
173 ms |
262148 KB |
Execution killed with signal 9 |
11 |
Runtime error |
181 ms |
262144 KB |
Execution killed with signal 9 |
12 |
Incorrect |
31 ms |
5600 KB |
Output isn't correct |
13 |
Runtime error |
196 ms |
262148 KB |
Execution killed with signal 9 |
14 |
Runtime error |
170 ms |
262148 KB |
Execution killed with signal 9 |
15 |
Runtime error |
164 ms |
262144 KB |
Execution killed with signal 9 |
16 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
17 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
18 |
Runtime error |
195 ms |
262148 KB |
Execution killed with signal 9 |
19 |
Runtime error |
180 ms |
262148 KB |
Execution killed with signal 9 |
20 |
Runtime error |
221 ms |
262148 KB |
Execution killed with signal 9 |
21 |
Runtime error |
227 ms |
262148 KB |
Execution killed with signal 9 |
22 |
Runtime error |
193 ms |
262148 KB |
Execution killed with signal 9 |
23 |
Runtime error |
217 ms |
262148 KB |
Execution killed with signal 9 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
392 ms |
262148 KB |
Execution killed with signal 9 |
2 |
Runtime error |
160 ms |
262148 KB |
Execution killed with signal 9 |
3 |
Runtime error |
171 ms |
262148 KB |
Execution killed with signal 9 |
4 |
Runtime error |
158 ms |
262144 KB |
Execution killed with signal 9 |
5 |
Runtime error |
183 ms |
262148 KB |
Execution killed with signal 9 |
6 |
Runtime error |
168 ms |
262148 KB |
Execution killed with signal 9 |
7 |
Runtime error |
199 ms |
262148 KB |
Execution killed with signal 9 |
8 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
9 |
Runtime error |
164 ms |
262144 KB |
Execution killed with signal 9 |
10 |
Runtime error |
173 ms |
262148 KB |
Execution killed with signal 9 |
11 |
Runtime error |
181 ms |
262144 KB |
Execution killed with signal 9 |
12 |
Incorrect |
31 ms |
5600 KB |
Output isn't correct |
13 |
Runtime error |
196 ms |
262148 KB |
Execution killed with signal 9 |
14 |
Runtime error |
170 ms |
262148 KB |
Execution killed with signal 9 |
15 |
Runtime error |
164 ms |
262144 KB |
Execution killed with signal 9 |
16 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
17 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
18 |
Runtime error |
195 ms |
262148 KB |
Execution killed with signal 9 |
19 |
Runtime error |
180 ms |
262148 KB |
Execution killed with signal 9 |
20 |
Runtime error |
221 ms |
262148 KB |
Execution killed with signal 9 |
21 |
Runtime error |
227 ms |
262148 KB |
Execution killed with signal 9 |
22 |
Runtime error |
193 ms |
262148 KB |
Execution killed with signal 9 |
23 |
Runtime error |
217 ms |
262148 KB |
Execution killed with signal 9 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
392 ms |
262148 KB |
Execution killed with signal 9 |
2 |
Runtime error |
160 ms |
262148 KB |
Execution killed with signal 9 |
3 |
Runtime error |
171 ms |
262148 KB |
Execution killed with signal 9 |
4 |
Runtime error |
158 ms |
262144 KB |
Execution killed with signal 9 |
5 |
Runtime error |
183 ms |
262148 KB |
Execution killed with signal 9 |
6 |
Runtime error |
168 ms |
262148 KB |
Execution killed with signal 9 |
7 |
Runtime error |
199 ms |
262148 KB |
Execution killed with signal 9 |
8 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
9 |
Runtime error |
164 ms |
262144 KB |
Execution killed with signal 9 |
10 |
Runtime error |
173 ms |
262148 KB |
Execution killed with signal 9 |
11 |
Runtime error |
181 ms |
262144 KB |
Execution killed with signal 9 |
12 |
Incorrect |
31 ms |
5600 KB |
Output isn't correct |
13 |
Runtime error |
196 ms |
262148 KB |
Execution killed with signal 9 |
14 |
Runtime error |
170 ms |
262148 KB |
Execution killed with signal 9 |
15 |
Runtime error |
164 ms |
262144 KB |
Execution killed with signal 9 |
16 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
17 |
Runtime error |
187 ms |
262148 KB |
Execution killed with signal 9 |
18 |
Runtime error |
195 ms |
262148 KB |
Execution killed with signal 9 |
19 |
Runtime error |
180 ms |
262148 KB |
Execution killed with signal 9 |
20 |
Runtime error |
221 ms |
262148 KB |
Execution killed with signal 9 |
21 |
Runtime error |
227 ms |
262148 KB |
Execution killed with signal 9 |
22 |
Runtime error |
193 ms |
262148 KB |
Execution killed with signal 9 |
23 |
Runtime error |
217 ms |
262148 KB |
Execution killed with signal 9 |