제출 #1038664

#제출 시각아이디문제언어결과실행 시간메모리
1038664HappyCapybara죄수들의 도전 (IOI22_prison)C++17
65 / 100
11 ms1116 KiB
#include "prison.h" #include <bits/stdc++.h> using namespace std; vector<vector<int>> devise_strategy(int N){ if (N == 2) return {{0, 1, 2}, {1, 0, -1}, {1, -2, 0}}; int y = floor(log2(N))+1; vector<vector<int>> a(2*y-1, vector<int>(N+1)); for (int i=0; i<2*(y-1)+1; i++){ int g = ((i+1)/2) % 2; for (int j=0; j<N+1; j++){ if (i == 0){ if (j == 0){ a[i][j] = 0; continue; } a[i][j] = min(1, (j&(1<<(y-1))))+1; } else { if (j == 0){ a[i][j] = g; continue; } int b = min(1, j&(1<<(y-1-(i-1)/2))); if (b == 1 - i % 2){ if (i < 2*y-3) a[i][j] = i+1+(i%2) + min(1, j&(1<<(y-2-(i-1)/2))); else { if (j & 1){ if (g) a[i][j] = -1; else a[i][j] = -2; } else { if (g) a[i][j] = -2; else a[i][j] = -1; } } } else { if (b < 1-(i%2)){ if (g) a[i][j] = -2; else a[i][j] = -1; } else { if (g) a[i][j] = -1; else a[i][j] = -2; } } } } } /*for (int i=0; i<2*y-1; i++){ for (int j=0; j<N+1; j++) cout << a[i][j] << " "; cout << "\n"; }*/ return a; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...