# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
857250 | 2023-10-05T16:37:01 Z | divad | Brperm (RMI20_brperm) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "brperm.h" using namespace std; string str; void init(int n, const char s[]) { str = s; } int rev_bits(int x, int k){ int ans = 0; for(int i = 0; i < k; i++){ int bt = (x>>i)&1; ans += bt*(1<<(k-i-1)); } return ans; } bool query(int pos, int k){ int len = (1<<k); string sub = str.substr(pos, len); for(int i = 0; i < len; i++){ if(sub[i] != sub[rev_bits(i, k)]){ return false; } } return true; }