# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
493615 | 2021-12-12T11:42:40 Z | Jeff12345121 | Brperm (RMI20_brperm) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #inclue "brperm.h" using namespace std; const int nmax = 100005; int n; char c[nmax]; void init(int N, const char C[]) { n = N; for (int i = 0; i < N; i++) { c[i] = C[i]; } } int rev(int x, int k) { int res = 0,cnt = 0; for (int i = k - 1; i >= 0; i--) { if (x & (1 << i)) res += (1 << cnt); cnt++; } return res; } int query(int i, int k) { int limit = i + (1 << k) - 1; for (int j = i; j <= limit; j++) { if (c[j] != c[rev(j - i , k) + i]) return 0; } return 1; }