제출 #1326571

#제출 시각아이디문제언어결과실행 시간메모리
1326571Jawad_Akbar_JJUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
2 ms568 KiB
#include <iostream>
#include <vector>
#include "messy.h"

using namespace std;

void write(int l, int r, string s){
	if (l + 1 == r)
		return;
	string lft = s, rgt = s;
	int mid = (l + r) / 2, sz = mid - l;

	for (int i=0;i<sz;i++){
		s[l + i] = '1';
		add_element(s);
		s[l + i] = '0';
		lft[l + i] = '1';
		rgt[mid + i] = '1';
	}
	write(l, mid, rgt);
	write(mid, r, lft);
}

vector<int> num;
void read(int l, int r, string s, vector<int> vc){
	if (l + 1 == r){
		num[vc[0]] = l;
		return;
	}
	vector<int> vl,  vr;
	string sl =s, sr =s;

	for (int i : vc){
		s[i] = '1';

		if (check_element(s)){
			vl.push_back(i);
			sr[i] = '1';
		}
		else{
			vr.push_back(i);
			sl[i] = '1';
		}
		s[i] = '0';
	}
	read(l, (l + r) / 2, sl, vl);
	read((l + r) / 2, r, sr, vr);
}

vector<int> restore_permutation(int n, int r, int w){
	string s;
	vector<int> v;
	for (int i=0;i<n;i++)
		s += '0', v.push_back(i);
	num.resize(n);

	write(0, n, s);
	compile_set();
	read(0, n, s, v);
	return num;
}

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

messy.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
messy_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...