제출 #1334614

#제출 시각아이디문제언어결과실행 시간메모리
1334614qilby앵무새 (IOI11_parrots)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>

#include "encoder.h"
#include "encoderlib.h"

using namespace std;
using ll = long long;

/*int sz, arr[100];

void send(int x) {  arr[sz++] = x; cout << "+" << x << "\n"; }
void output(int x) { cout << x << " "; }*/

void encode(int n, int a[]) {
    int c[n];
    vector < int > b;
    for (int i = 0; i < n; i++) b.push_back(a[i]);

    sort(b.begin(), b.end());
    b.resize(unique(b.begin(), b.end()) - b.begin());

    for (int i = 0; i < n; i++) c[i] = lower_bound(b.begin(), b.end(), a[i]) - b.begin();

    for (int i = 0; i < n; i++) {
        send(a[i]);
        send(a[i]);
        send(a[i]);
        send(a[i]);
    }

    int sl = 0, sh = 0;

    for (int i = 0; i < n; i++) {
        sl += (c[i] % 8) + 1;
        send(sl - 1);
        send(sl - 1);
        sh += (c[i] / 8) + 1;
        send(sh - 1);
    }
}

void decode(int n, int m, int a[]) {
    sort(a, a + m);
    vector < int > v, l, h;
    int i = 0, sl = 0, sh = 0;

    while (i < m) {
        int k = 1;
        while (i + 1 < m && a[i + 1] == a[i]) i++, k++;

        if (k & 4) v.push_back(a[i]);

        int w = a[i] + 1;
        if (k & 2) { l.push_back(w - sl - 1); sl = w; }
        if (k & 1) { h.push_back(w - sh - 1); sh = w; }

        i++;
    }

    for (int i = 0; i < n; i++) output(v[l[i] + h[i] * 8]);
}

/*int main() {
    int n;
    cin >> n;

    int a[n];
    for (int i = 0; i < n; i++) cin >> a[i];

    encode(n, a);
    decode(n, sz, arr);
}*/
#include <bits/stdc++.h>

#include "decoder.h"
#include "decoderlib.h"

using namespace std;
using ll = long long;

/*int sz, arr[100];

void send(int x) {  arr[sz++] = x; cout << "+" << x << "\n"; }
void output(int x) { cout << x << " "; }*/

void encode(int n, int a[]) {
    int c[n];
    vector < int > b;
    for (int i = 0; i < n; i++) b.push_back(a[i]);

    sort(b.begin(), b.end());
    b.resize(unique(b.begin(), b.end()) - b.begin());

    for (int i = 0; i < n; i++) c[i] = lower_bound(b.begin(), b.end(), a[i]) - b.begin();

    for (int i = 0; i < n; i++) {
        send(a[i]);
        send(a[i]);
        send(a[i]);
        send(a[i]);
    }

    int sl = 0, sh = 0;

    for (int i = 0; i < n; i++) {
        sl += (c[i] % 8) + 1;
        send(sl - 1);
        send(sl - 1);
        sh += (c[i] / 8) + 1;
        send(sh - 1);
    }
}

void decode(int n, int m, int a[]) {
    sort(a, a + m);
    vector < int > v, l, h;
    int i = 0, sl = 0, sh = 0;

    while (i < m) {
        int k = 1;
        while (i + 1 < m && a[i + 1] == a[i]) i++, k++;

        if (k & 4) v.push_back(a[i]);

        int w = a[i] + 1;
        if (k & 2) { l.push_back(w - sl - 1); sl = w; }
        if (k & 1) { h.push_back(w - sh - 1); sh = w; }

        i++;
    }

    for (int i = 0; i < n; i++) output(v[l[i] + h[i] * 8]);
}

/*int main() {
    int n;
    cin >> n;

    int a[n];
    for (int i = 0; i < n; i++) cin >> a[i];

    encode(n, a);
    decode(n, sz, arr);
}*/

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

# 1번째 컴파일 단계

encoder.cpp: In function 'void decode(int, int, int*)':
encoder.cpp:60:33: error: 'output' was not declared in this scope
   60 |     for (int i = 0; i < n; i++) output(v[l[i] + h[i] * 8]);
      |                                 ^~~~~~