#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;
void encode(int N, int M[])
{
vector<int> Tab;
for (int i = 0; i < N; i++)
{
for (int j = 7; j >= 0; j--)
{
Tab.push_back((M[i] & (1 << j)) ? 1 : 0);
}
}
int random = 0;
int ones = 500;
for (int j = 0; j < 8; j++)
{
srand(random);
ones = 0;
for (int i = 0; i < Tab.size(); i++)
{
int x = rand() % 2;
if (x)
Tab[i] = 1 - Tab[i];
if (Tab[i])
ones++;
}
if (ones < 253)
break;
random++;
}
int buff = 0;
for (int i = 2; i >= 0; i--)
{
if (random & (1 << i))
buff++;
else
send(buff);
}
// cout << buff << ' ';
for (int i = 0; i < Tab.size(); i++)
{
if (Tab[i])
buff++;
else
send(buff);
// cout << buff << ' ';
}
}
/*int main()
{
int N;
cin >> N;
int Tab[N];
for (int i = 0; i < N; i++)
cin >> Tab[i];
encode(N, Tab);
}*/
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;
void decode(int N, int L, int X[])
{
vector<int> Tab;
for (int i = 0; i < L; i++)
Tab.push_back(X[i]);
sort(Tab.begin(), Tab.end());
vector<int> message;
int buff = 0;
for (int i = 0; i < 256; i++)
{
while (buff < Tab.size() && Tab[buff] == i)
{
message.push_back(0);
buff++;
}
message.push_back(1);
}
int random = 0;
for (int i = 0; i < 3; i++)
{
random *= 2;
if (message[i])
random++;
}
for (int i = 0; i <= random; i++)
{
srand(i);
for (int j = 3; j < message.size(); j++)
{
int x = rand() % 2;
if (x)
message[j] = 1 - message[j];
}
}
buff = 3;
for (int i = 0; i < N; i++)
{
int x = 0;
for (int j = 0; j < 8; j++)
{
x *= 2;
if (message[buff])
x++;
buff++;
}
output(x);
// cout << x << ' ';
}
}
/*int main()
{
int N, L;
cin >> N >> L;
int Tab[L];
for (int i = 0; i < L; i++)
cin >> Tab[i];
decode(N, L, Tab);
}*/
# | 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... |