#include "prison.h"
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> devise_strategy(int N) {
	vector<vector<int>> v;
	int cnt = 1, nw = 0;
	vector<pair<int, int>> num;
	vector<vector<int>> put;
	vector<int> which;
	which.push_back(0);
	num.push_back({0, 0});
	put.resize(9);
	for (int i = 8; i >= 0; i--) {
		num.push_back({i, 0});
		put[i].push_back(num.size() - 1);
		num.push_back({i, 1});
		put[i].push_back(num.size() - 1);
		which.push_back(nw);
		which.push_back(nw);
		nw ^= 1;
	}
	v.resize(num.size());
	v[0].push_back(0);
	// cout << "0 ";
	for (int i = 1; i <= N; i++) {
		v[0].push_back(((i & (1 << 8)) > 0) + 1);
		// cout << v[0].back() << " ";
	}
	// cout << "\n";
	for (int i = 1; i < num.size(); i++) {
		int get = num[i].second, ff = num[i].first;
		// cout << "kers " << num[i].first << " " << num[i].second << "\n";
		v[i].push_back(which[i] ^ 1);
		// cout << v[i][0] << " ";
		for (int j = 1; j <= N; j++) {
			int bit = ((j & (1 << ff)) > 0);
			if (bit < get) {
				v[i].push_back(-((which[i]) + 1));
			} else if (bit > get) {
				v[i].push_back(-((which[i] ^ 1) + 1));
			} else {
				if (ff == 0)
					v[i].push_back(-1);
				else
					v[i].push_back(put[(ff - 1)][(((1 << (ff - 1)) & j) > 0)]);
			}
			// cout << v[i].back() << " ";
		}
		// cout << "\n";
	}
	return v;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |