Submission #1141098

#TimeUsernameProblemLanguageResultExecution timeMemory
1141098hyl_kibouParrots (IOI11_parrots)C++17
Compilation error
0 ms0 KiB
/#include "encoder.h" #include "encoderlib.h" #include <vector> void encode(int N, int M[]) { int nor[N*4+7]; int inv[N*4+7]; int a; int sum1 = 0; int sum2 = 0; int sum3 = 0; int sum4 = 0; for(int i = 0; i<N; ++i){ int a = M[i]; for(int j = 0; j<4; ++j){ nor[i*4+j] = a%4; sum1 += a%4; inv[i*4+j] = 3-a%4; sum2 += 3-a%4; if(j%2){ sum3 += a%4; //printf("%d %d\n", sum3); } else{ sum3 += 3-a%4; //printf("%d %d\n", sum3); } //printf("%d %d %dY0\n", i, j, sum3); if(j<2){ sum4 += 3-a%4; } else{ sum4 += a%4; } a/=2; a/=2; } } //printf("%d %d %d %d\n", sum1, sum2, sum3, sum1+sum2-sum3); int cat = 1; if(N==64){ cat = 4; } int extra = 256; int curr = sum1-cat; if(curr>sum2){ extra = 255; curr = sum2; } if(curr>sum3){ extra = 254; curr = sum3; } if(curr>sum1+sum2-sum3){ extra = 253; curr = sum1+sum2-sum3; } if(curr>sum4){ extra = 252; } for(int i = 0; i<N*4; ++i){ if(extra == 256){ curr = nor[i]; } if(extra == 255){ curr = inv[i]; } if(extra == 254){ if(i%2){ curr = nor[i]; } else{ curr = inv[i]; } } if(extra == 253){ if(i%2){ curr = inv[i]; } else{ curr = nor[i]; } } if(extra ==252){ if(i%4<2){ curr = inv[i]; } else{ curr = nor[i]; } } for(int j = 0; j<curr; ++j){ //printf("%d_", i); send(i); } } for(int i = 0; i<cat; ++i){ if(extra!=256){ send(extra); } } //send(); }
#include "decoder.h" #include "decoderlib.h" #include <algorithm> //int exo[] = {1, 2, 4, 8, 16, 32, 64, 128}; void decode(int N, int L, int X[]) { std::sort(X, X+L); int arr[256] = {}; for(int i = 0; i<L; ++i){ ++arr[X[i]]; } int cat = 1; if(N==64){ cat = 4; } if(arr[255]>=cat){ arr[255]-=cat; for(int i = 0; i<N*4; i+=4){ int sum = 0; sum+=3-arr[i]; sum+=(3-arr[i+1])*4; sum+=(3-arr[i+2])*16; sum+=(3-arr[i+3])*64; output(sum); } return; } if(arr[253]>=cat){ arr[253]-=cat; for(int i = 0; i<N*4; i+=4){ int sum = 0; sum+=arr[i]; sum+=(3-arr[i+1])*4; sum+=(arr[i+2])*16; sum+=(3-arr[i+3])*64; output(sum); } return; } if(arr[254]>=cat){ arr[254]-=cat; for(int i = 0; i<N*4; i+=4){ int sum = 0; sum+=3-arr[i]; sum+=(arr[i+1])*4; sum+=(3-arr[i+2])*16; sum+=(arr[i+3])*64; //printf("%d ", sum); output(sum); } return; } if(arr[252]>=cat){ arr[252]-=cat; for(int i = 0; i<N*4; i+=4){ int sum = 0; sum+=3-arr[i]; sum+=(3-arr[i+1])*4; sum+=(arr[i+2])*16; sum+=(arr[i+3])*64; //printf("%d ", sum); output(sum); } return; } for(int i = 0; i<N*4; i+=4){ int sum = 0; sum+=arr[i]; sum+=(arr[i+1])*4; sum+=(arr[i+2])*16; sum+=(arr[i+3])*64; output(sum); } //output(); }

Compilation message (stderr)

# 1번째 컴파일 단계

encoder.cpp:1:2: error: stray '#' in program
    1 | /#include "encoder.h"
      |  ^
encoder.cpp:1:1: error: expected unqualified-id before '/' token
    1 | /#include "encoder.h"
      | ^
encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:111:13: error: 'send' was not declared in this scope
  111 |             send(i);
      |             ^~~~
encoder.cpp:118:13: error: 'send' was not declared in this scope
  118 |             send(extra);
      |             ^~~~