# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1218106 | KindaGoodGames | Floppy (RMI20_floppy) | 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;
int r = l +p2-1;
bool valid = true;
for(int i = l; i < l+p2; i++){
int np = rev(i-l, k)+l;
res[np] = str[i];
}
for(int i = l; i < l+p2; i++){
if(res[i] != str[i]){
valid = false;
}
}
return valid;
}