# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1218104 | KindaGoodGames | Peru (RMI20_peru) | C++20 | 0 ms | 0 KiB |
#include "brperm.h"
#include<bits/stdc++.h>
#define int long long
using namespace std;
int rev(int a, int p){
int r = 0;
int p2 = 1 << p;
for(int i = 0; i < p; i++){
int bit = (a & (1<<i)) > 0;
r += (1<<(p-i-1)) * bit;
}
return r;
}
vector<char> str;
int n;
void init(int32_t N, const char arr[]) {
n = N;
str.resize(N);
for(int i = 0; i < n; i++){
str[i] = arr[i];
}
return;
}
int32_t query(int32_t l, int32_t k) {
vector<char> res(str.size(), '#');
int p2 = 1 << k;
while(l +p2-1 < n){
}
int r = min(p2+l-1,n-1);
bool valid = true;
for(int i = l; i <= r; i++){
int np = rev(i-l, k)+l;
res[np] = str[i];
}
for(int i = l; i <= r; i++){
if(res[i] != str[i]){
valid = false;
}
}
return valid;
}