제출 #1229590

#제출 시각아이디문제언어결과실행 시간메모리
1229590clemmy14죄수들의 도전 (IOI22_prison)C++20
38 / 100
16 ms1608 KiB
#include "prison.h"
#include <bits/stdc++.h>
using namespace std;

bool cal(int val, int i) {
	int cur=1;
	while(cur<val) cur*=2;
	int tar=1;
	while(i--) tar*=2;
	while(val != 0) {
		if(val >= cur) {
			val-=cur;
			if(cur == tar) return true;
		}
		cur/=2;
	}
	return false;
}

vector<vector<int>> devise_strategy(int N) {
	vector<vector<int>> s(39, vector<int>(N+1, 0));
	for(int i=13; i<39; i++) s[i][0]=1;
	for(int i=0; i<39; i++) {
		int pow = 12-(i%13);
		if(i < 13) {
			for(int j=1; j<=N; j++) {
				if(cal(j, pow)) s[i][j]=i+26;
				else s[i][j]=i+13;
			}
		} else if(i < 26) {
			for(int j=1; j<=N; j++) {
				if(cal(j, pow)) s[i][j]=-1;
				else s[i][j]=i-12;
			}
		} else {
			for(int j=1; j<=N; j++) {
				if(cal(j, pow)) s[i][j]=i-25;
				else s[i][j]=-2;
			}
		}
	}
	return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...