#include "encoder.h"
#include "encoderlib.h"
#include<bits/stdc++.h>
using namespace std;
int timer = 0;
map<int, vector<int>> m;
void dfs(vector<int> &x){
m[timer] = x;
timer++;
if((int)x.size() == 7){
return;
}
int last = x[(int)x.size()-1];
for(int i = last; i <= 3; ++i){
x.push_back(i);
dfs(x);
x.pop_back();
}
}
void encode(int N, int M[])
{
int n = N;
timer = 0;
vector<int> x = {0};
dfs(x);
x = {1};
dfs(x);
x = {2};
dfs(x);
x = {3};
dfs(x);
vector<vector<int>> vec(n);
for(int i = 0; i < n; ++i){
vec[i] = m[M[i]];
}
for(int i = 0; i < n; ++i){
for(auto e:vec[i]){
int num = i;
if(e & 1){
num += 64;
}
if(e & 2){
num += 128;
}
send(num);
}
}
}
#include "decoder.h"
#include "decoderlib.h"
#include<bits/stdc++.h>
using namespace std;
int timer = 0;
map<vector<int>, int> m;
void dfs(vector<int> &x){
m[x] = timer;
timer++;
if((int)x.size() == 7){
return;
}
int last = x[(int)x.size()-1];
for(int i = last; i <= 3; ++i){
x.push_back(i);
dfs(x);
x.pop_back();
}
}
void decode(int N, int L, int X[])
{
int n = N;
timer = 0;
vector<int> x = {0};
dfs(x);
x = {1};
dfs(x);
x = {2};
dfs(x);
x = {3};
dfs(x);
vector<vector<int>> vec(n);
for(int i = 0; i < L; ++i){
int pos = 0;
for(int i = 0; i < 6; ++i){
if(X[i] & i){
pos += (1 << i);
}
}
int num = 0;
if(X[i] & 64){
num++;
}
if(X[i] & 128){
num++;
}
vec[pos].push_back(num);
}
for(auto e:vec){
int ans = m[e];
output(ans);
}
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |