제출 #1364874

#제출 시각아이디문제언어결과실행 시간메모리
1364874takoshanava앵무새 (IOI11_parrots)C++20
컴파일 에러
0 ms0 KiB
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
#define int long long
#define pb push_back
#define fs first
#define sc second
using namespace std;

vector<array<int, 4>> vec;
bool done = 0;

void gen(){
    if(done) return;
    done = 1;

    for(int a = 0; a <= 7; a++){
        for(int b = 0; b <= 7; b++){
            for(int c = 0; c <= 7; c++){
                for(int d = 0; d <= 7; d++){
                    if(a + b + c + d <= 7) vec.pb({a, b, c, d});
                }
            }
        }
    }
}

void encode(int n, int a[]){
    gen();

    for(int i = 0; i < n; i++){
        int val = 0;
        int p = 4;
        int x = i;

        for(int j = 0; j <= 5; j++){
            if(x % 2 == 1) val += p;
            p *= 2;
            x /= 2;
        }
        int id = a[i];
        int aa = vec[id][0];
        int bb = vec[id][1];
        int cc = vec[id][2];
        int dd = vec[id][3];
        for(int j = 0; j < aa; j++) send(val + 0);
        for(int j = 0; j < bb; j++) send(val + 1);
        for(int j = 0; j < cc; j++) send(val + 2);
        for(int j = 0; j < dd; j++) send(val + 3);
    }
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
#define int long long
#define pb push_back
#define fs first
#define sc second
using namespace std;

vector<array<int, 4>> vec;
int rev[8][8][8][8];
bool done = 0;

void gen(){
    if(done) return;
    done = 1;
    for(int a = 0; a <= 7; a++){
        for(int b = 0; b <= 7; b++){
            for(int c = 0; c <= 7; c++){
                for(int d = 0; d <= 7; d++){
                    if(a + b + c + d <= 7){
                        rev[a][b][c][d] = vec.size();
                        vec.pb({a, b, c, d});
                    }
                }
            }
        }
    }
}

void decode(int n, int l, int a[]){
    gen();

    vector<array<int, 4>> cnt(n, {0, 0, 0, 0});

    for(int i = 0; i < l; i++){
        int x = a[i] / 4;
        int y = a[i] % 4;
        cnt[x][y]++;
    }

    for(int i = 0; i < n; i++){
        int aa = cnt[i][0];
        int bb = cnt[i][1];
        int cc = cnt[i][2];
        int dd = cnt[i][3];
        output(rev[aa][bb][cc][dd]);
    }
}

컴파일 시 표준 에러 (stderr) 메시지

# 1번째 컴파일 단계

/usr/bin/ld: /tmp/cchyfPCE.o: in function `main':
grader_encoder.cpp:(.text.startup+0x167): undefined reference to `encode(int, int*)'
collect2: error: ld returned 1 exit status