제출 #386916

#제출 시각아이디문제언어결과실행 시간메모리
386916godwind앵무새 (IOI11_parrots)C++17
컴파일 에러
0 ms0 KiB
#include "encoder.h"
#include "encoderlib.h"

#include <vector>

using namespace std;

void encode(int n, int M[])
{
	vector<int> is(n);
	for (int i = 0; i < n; ++i) {
		int FIRST = M[i] / 16;
		int SECOND = M[i] % 16;
		send(FIRST * 16 + i);
		send(SECOND * 16 + i);

		if (FIRST < SECOND) {
			is[i] = false;
		} else {
			is[i] = true;
		}
	}
	int mask = 0;
	for (int i = 0; i < n; ++i) {
		if (is[i]) {
			mask += (1 << i);
		}
	}
	for (int it = 0; it < 10; ++it) {
		send(mask);
	}
}
#include "decoder.h"
#include "decoderlib.h"
#include <vector>
#include <map>

using namespace std;

void decode(int n, int L, int X[])
{
	vector<int> ans(n), is(n);
	vector< vector<int> > parts(n);

	map<int, int> cnt;

	for (int i = 0; i < L; ++i) {
		++cnt[X[i]];
	}

	auto proceed = [&] (int mask) {
		int FP = mask / 16;
		int SP = mask % 16;

		int id = SP;

		parts[id].push_back(FP);
	};

	for (auto P : cnt) {
		int mask = P.first;
		int cn = p.second;

		if (cn == 1) {
			proceed(mask);
		} else {
			if (cn == 10) {
				for (int i = 0; i < n; ++i) {
					is[i] = (mask >> i) & 1;
				}
			} else {
				proceed(mask);
			}
		}
	}

	for (int i = 0; i < n; ++i) {
		sort(parts[i].begin(), parts[i].end());
		if (is[i]) {
			ans[i] = parts[i][1] * 16 + parts[i][0];
		} else {
			ans[i] = parts[i][0] * 16 + parts[i][1];
		}
	}

	for (int i = 0; i < n; ++i) {
		output(ans[i]);
	}
}

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

decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:30:12: error: 'p' was not declared in this scope
   30 |   int cn = p.second;
      |            ^
decoder.cpp:46:3: error: 'sort' was not declared in this scope; did you mean 'qsort'?
   46 |   sort(parts[i].begin(), parts[i].end());
      |   ^~~~
      |   qsort