#include "grader.h"
#include "encoder.h"
#include <queue>
#include <vector>
using namespace std;
vector<int> adj[1000];
int dist[1000];
void bfs(int s) {
fill(dist, dist + 1000, -1);
dist[s] = 0;
queue<int> q;
q.push(s);
while (!q.empty()) {
int u = q.front();
q.pop();
for (int v : adj[u]) if (dist[v] == -1) {
dist[v] = dist[u] + 1;
q.push(v);
}
}
}
void encode(int n, int h, int m, int *u, int *v){
for (int i = 0; i < m; i++) {
adj[u[i]].push_back(v[i]);
adj[v[i]].push_back(u[i]);
}
for (int i = 0; i < h; i++) {
bfs(i);
for (int j = 0; j < n; j++) {
for (int b = 0; b < 10; b++) {
encode_bit((dist[j] >> b) & 1);
}
}
}
}
#include "grader.h"
#include "decoder.h"
#include <iostream>
void decode(int n, int h) {
for (int i = 0; i < h; i++) {
for (int j = 0; j < n; j++) {
int dis = 0;
for (int b = 0; b < 10; b++)
dis |= decode_bit() << b;
// std::cout<<i<<' '<<j<<' '<<dis<<'\n';
hops(i, j, dis);
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |