This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "encoder.h"
#include "encoderlib.h"
using namespace std;
vector<string> v;
void rec(string s){
if((int)s.size() <= 7){
if(!s.empty()) v.push_back(s);
}
else return;
for(auto x: {'0', '1', '2', '3'}){
if(s.empty() || x >= s.back()){
rec(s + x);
}
}
}
void encode(int N, int M[]){
rec("");
for(int i = 0; i < N; i ++){
for(auto c: v[M[i]]){
send(i + ((c - '0') << 6));
}
}
}
#include <bits/stdc++.h>
#include "decoder.h"
#include "decoderlib.h"
using namespace std;
vector<string> v;
void rec(string s){
if((int)s.size() <= 7){
if(!s.empty()) v.push_back(s);
}
else return;
for(auto x: {'0', '1', '2', '3'}){
if(s.empty() || x >= s.back()){
rec(s + x);
}
}
}
void decode(int N, int L, int X[]){
rec("");
vector<string> a(256);
for(int i = 0; i < L; i ++){
int pos = (X[i] & ((1 << 6) - 1));
int x = (X[i] >> 6);
a[pos] += (x + '0');
}
for(int i = 0; i < N; i ++){
sort(a[i].begin(), a[i].end());
for(int j = 0; j < 256; j ++){
if(a[i] == v[j]){
output(j);
break;
}
}
}
}
# | 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... |