# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
596729 | definitelynotmee | Brperm (RMI20_brperm) | C++17 | 2 ms | 2388 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "brperm.h"
#include<bits/stdc++.h>
#define ff first
#define ss second
#define all(x) x.begin(), x.end()
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using pll = pair<ll,ll>;
template<typename T>
using matrix = vector<vector<T>>;
const ll INFL = 1ll<<60;
const int MOD = 1e9+7;
string S;
void init(int n, const char s[]) {
S = string(s,s+n);
return;
}
int getreverse(int x, int k){
int ret = 0;
for(int i = 0; i < k; i++){
ret+=(1<<i)*bool((1<<(k-i-1))&x);
}
return ret;
}
int query(int start, int k) {
if(k == 0)
return 1;
bool ok = 1;
assert(start+(1<<k)<=S.size());
for(int i = 0; i < (1<<k); i++){
//cout << k << ": " << bitset<4>(i-start) << ' ' << bitset<4>(getreverse(i-start,k)) << '\n';
//assert(getreverse(i,k)+start < S.size());
ok&=S[getreverse(i,k)+start] == S[i+start];
}
return ok;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |