#include "encoder.h"
#include "encoderlib.h"
#include<bits/stdc++.h>
using namespace std;
vector<int> solve(const vector<int> sir)
{
for(int cnt_id=0;cnt_id<8;cnt_id++)
{
int cnt_val = 8 - cnt_id;
vector<int> v;
for(int i=0;i<sir.size();i+=cnt_val)
{
v.push_back(0);
for(int j=i;j<min(i+cnt_val,(int)sir.size());j++)
if(sir[j]==1)
v.back() += (1<<(j-i));
}
int cate=0;
for(int i=1;i<v.size();i++)
if(v[i] < v[i-1])
cate++;
if((1<<cnt_id) <= cate)
continue;
vector<int> sol;
int cur=0;
for(int i=0;i<v.size();i++)
{
if(i>0 && v[i] < v[i-1])
cur++;
sol.push_back((cur<<cnt_val) + v[i]);
}
for(int i=1;i<sol.size();i++)
assert(sol[i]>=sol[i-1]);
//cerr<<cnt_id<<" cnt_id encoder\n";
return sol;
}
}
void encode(int N, int M[])
{
vector<int> sir;
for(int i=0;i<N;i++)
{
for(int j=0;j<8;j++)
{
if((1<<j)&M[i])
sir.push_back(1);
else
sir.push_back(0);
}
}
assert((int)sir.size() == 8*N);
vector<int> v = solve(sir);
for(int x:v)
send(x);
return;
reverse(sir.begin(),sir.end());
vector<int> vrev = solve(sir);
}
/*
*/
#include "decoder.h"
#include "decoderlib.h"
#include<bits/stdc++.h>
using namespace std;
void decode(int N, int lun, int X[])
{
sort(X,X+lun);
for(int cnt_val=1;;cnt_val++)
{
if(cnt_val*lun >= 8*N)
{
int cnt_id = 8 - cnt_val;
vector<int> sir;
for(int i=0;i<lun;i++)
{
for(int j=0;j<cnt_val;j++)
{
if((1<<j)&X[i])
sir.push_back(1);
else
sir.push_back(0);
}
}
//cerr<<cnt_id<<" cnt_id decoder\n";
for(int i=0;i<N;i++)
{
int val=0;
for(int j=0;j<8;j++)
if(sir[i*8+j])
val += (1<<j);
output(val);
}
return;
}
}
}
Compilation message (stderr)
# 1번째 컴파일 단계
encoder.cpp: In function 'std::vector<int> solve(std::vector<int>)':
encoder.cpp:37:1: warning: control reaches end of non-void function [-Wreturn-type]
37 | }
| ^
# | 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... |