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 "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;
void encode(int N, int M[])
{
for ( int i = 0; i < N; i++ ) {
vector < int > vc;
int x = M[i];
for ( int i = 0; i < 3; i++ ) {
vc.push_back( x % 10 );
x /= 10;
}
send( i * 10 + vc[0] );
send( i * 10 + vc[1] );
send( i * 10 + vc[1] );
for ( int j = 0; j < 4; j++ ) {
send( i * 10 + vc[2] );
}
}
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;
void decode(int N, int L, int X[])
{
vector < int > vc[N];
for ( int i = 0; i < L; i++ ) {
int x = X[i] / 10;
vc[x].push_back( X[i] % 10 );
}
for ( int i = 0; i < N; i++ ) {
vector < int > cnt(10);
for ( auto j: vc[i] ) {
cnt[j]++;
}
vector < pair < int, int > > v;
for ( int j = 0; j < 10; j++ ) {
if ( cnt[j] ) {
v.push_back( { j, cnt[j] } );
}
}
vector < int > digits(3);
// cout << i << '\n';
for ( auto j: v ) {
// cout << j.first << " " << j.second << '\n';
int x = j.first, y = j.second;
if ( y == 1 ) {
digits[2] = x;
}
else if ( y == 2 ) {
digits[1] = x;
}
else if ( y == 4 ) {
digits[0] = x;
}
else if ( y == 3 ) {
digits[1] = digits[2] = x;
}
else if ( y == 6 ) {
digits[0] = digits[1] = x;
}
else if ( y == 5 ) {
digits[0] = digits[2] = x;
}
else if ( y == 7 ) {
digits[0] = digits[1] = digits[2] = x;
}
}
int ans = 0;
ans += digits[0];
ans *= 10;
ans += digits[1];
ans *= 10;
ans += digits[2];
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... |