#include "prison.h"
#include <bits/stdc++.h>
#define ll long long
#define fi first 
#define se second
#define pb push_back
using namespace std;
typedef pair<ll,ll> pii;
typedef pair<ll,pii> ipii;
const int MAXN = 3e5+100;
const ll INF = 2e18+10;
const int LOG = 12;
int n; 
vector<vector<int>> ANS;
vector<int> vec;
int cekbit(int n, int v){
	int p = 1;
	for(int i=0; i<v; i++) p *= 9;
	return (n/p)%9;
}
int type(int n, int v){
	return cekbit(n,v)/3;
}
std::vector<std::vector<int>> devise_strategy(int N) {
	n = N;
	// i = 0
	vec.pb(0);
	for(int j=1; j<=n; j++){
		vec.pb(type(j, 3)+6*(3) + 1);
	}
	ANS.pb(vec);
	for(int i=1; i<=24; i++){ // di papan i
		int v = i-1; int bit = v/6, num = v%6;
		vector<int> vec;
		if(num<=2){ // 0 1 2, group A nya
			// buka B
			vec.pb(1);
			for(int j=1; j<=n; j++){
				int ty = type(j,bit);
				if(ty < num) vec.pb(-2); // b lebih dikit
				else if(ty > num) vec.pb(-1); // a lebih dikit
				else vec.pb(cekbit(j, bit)%3+6*bit+3 + 1); // +0 +1 +2
			}
		} else { // buka A
			num -= 3;
			vec.pb(0);
			for(int j=1; j<=n; j++){
				if(cekbit(j,bit)%3 == num){ // kalo sama
					if(type(j, bit-1)+6*(bit-1) + 1 < 0) vec.pb(-1);
					else vec.pb(type(j, bit-1)+6*(bit-1) + 1); // kalo coin segini
				} else if(cekbit(j,bit)%3 > num){ // A lebih gede
					vec.pb(-2);
				} else {
					vec.pb(-1);
				}
			}
		}
		ANS.pb(vec);
		// for(auto in : vec) cout << in << ' ';
		// 	cout << " in\n";
	}
	return ANS;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |