이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 * 10 + vc[0]) * 10 + i % 10 );
send( (i / 10 * 10 + vc[1]) * 10 + i % 10 );
send( (i / 10 * 10 + vc[1]) * 10 + i % 10 );
for ( int j = 0; j < 4; j++ ) {
send( (i / 10 * 10 + vc[2]) * 10 + i % 10 );
}
}
}
#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] / 100 * 10;
x += X[i] % 10;
vc[x].push_back( (X[i] % 100) / 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... |