제출 #1267511

#제출 시각아이디문제언어결과실행 시간메모리
1267511MateiKing80Ancient Machine 2 (JOI23_ancient2)C++17
0 / 100
0 ms320 KiB
#include <bits/stdc++.h>
#include "ancient2.h"

using namespace std;

string Solve(int n) {
	//n = 1000 sau ceva
	int m = n / 2;
	string ans;
	for (int i = 0; i < m; i ++) { //aflu manual primele 500
		vector<int> a(i + 3), b(i + 3);
		for (int j = 0; j < i; j ++)
			a[j] =  b[j] = j + 1;
		a[i] = i + 1;
		b[i] = i + 2;
		a[i + 1] = b[i + 1] = i + 1;
		a[i + 2] = b[i + 2] = i + 2;
		int x = Query(i + 3, a, b);
		if (x == i + 1)
			ans.push_back('0');
		else
			ans.push_back('1');
	}
	for (int i = m; i < n; i ++) {
		vector<int> a(m + 1), b(m + 1);
		for (int j = 0; j < m; j ++)
			a[j] = b[j] = (j + 1) % m;
		a[m] = b[m] = m;
		if (ans[i % m] == '0') {
			b[i % m] = m;
			int x = Query(m + 1, a, b);
			if (x == m)
				ans.push_back('1');
			else
				ans.push_back('0');
		} else {
			a[i % m] = m;
			int x = Query(m + 1, a, b);
			if (x == m)
				ans.push_back('0');
			else
				ans.push_back('1');
		}
	}
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...