제출 #359098

#제출 시각아이디문제언어결과실행 시간메모리
359098NachoLibreUnscrambling a Messy Bug (IOI16_messy)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
#ifndef wambule
#include "messy.h"
#else
void add_element(string s) {}
void compile_set() {}
bool check_element(string s) { return 0; }
#endif

string O(int n) {
	string s = "";
	for(int i = 0; i < n; ++i) {
		s += '0';
	}
	return s;
}

string s;
vector<int> dr, rd;

inline int M(int l, int r) {
	return (l + r) / 2;
}

void A(int l, int r) {
	if(r - l <= 2) return;
	int m = M(l, r);
	for(int i = l; i < m; ++i) s[i] = '1';
	for(int i = m; i < M(m, r); ++i) {
		s[i] = '1';
		add_element(s);
		s[i] = '0';
	}
	for(int i = l; i < m; ++i) s[i] = '0';
	///
	for(int i = m; i < r; ++i) s[i] = '1';
	for(int i = l; i < M(l, m); ++i) {
		s[i] = '1';
		add_element(s);
		s[i] = '0';
	}
	for(int i = m; i < r; ++i) s[i] = '0';
	A(l, m);
	A(m, r);
}

void C(int l, int r) {
	if(r - l <= 2) return;
	int m = M(l, r), x = m;
	for(int i = l; i < m; ++i) s[rd[i]] = '1';
	for(int i = m; i < r; ++i) {
		s[rd[i]] = '1';
		if(check_element(s)) {
			swap(dr[rd[i]], dr[rd[x]]);
			swap(rd[i], rd[x]); ++x;
		}
		s[rd[i]] = '0';
	}
	for(int i = l; i < m; ++i) s[rd[i]] = '0';
	x = l;
	for(int i = m; i < r; ++i) s[rd[i]] = '1';
	for(int i = l; i < m; ++i) {
		s[rd[i]] = '1';
		if(check_element(s)) {
			swap(dr[rd[i]], dr[rd[x]]);
			swap(rd[i], rd[x]); ++x;
		}
		s[rd[i]] = '0';
	}
	for(int i = m; i < r; ++i) s[rd[i]] = '0';
	C(l, m);
	C(m, r);
}

vector<int> restore_permutation(int n, ...) {
	dr.resize(n);
	s = O(n);
	rd.resize(n);
	for(int i = 0; i < M(0, n); ++i) {
		s[i] = '1';
		add_element(s);
		s[i] = '0';
	}
	A(0, n);
	compile_set();
	int x = 0, y = M(0, n);
	for(int i = 0; i < n; ++i) {
		s[i] = '1';
		if(check_element(s)) {
			rd[x] = i;
			dr[i] = x++;
		} else {
			rd[y] = i;
			dr[i] = y++;
		}
		s[i] = '0';
	}
	return dr;
}

#ifdef wambule
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	return 0;
}
#endif

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

/tmp/cc6Tnlyt.o: In function `main':
grader.cpp:(.text.startup+0x13e): undefined reference to `restore_permutation(int, int, int)'
collect2: error: ld returned 1 exit status