#define debug(...) 42
#include "bits/stdc++.h"
using namespace std;
#ifndef LOCAL
#include "brperm.h"
#else
void init(int n, const char s[]);
int query(int i, int k);
#endif
int n;
char ss[500500];
void init(int N, const char S[]) {
int n = N;
for (int i = 0; i < n; i++) {
ss[i] = S[i];
}
}
int swapped(int i, int k) {
int a = 1;
int b = 1 << (k - 1);
if (bool(i & a) == bool(i & b)) {
return i;
} else {
i ^= a;
i ^= b;
return i;
}
}
int query(int i, int k) {
if (i + (1 << k) > n) {
return false;
}
string t(s.begin() + i, s.begin() + i + (1 << k));
for (int j = 0; j < (1 << k); j++) {
if (t[j] != t[swapped(j, k)]) {
return false;
}
}
return true;
}
#ifdef LOCAL
char __s[(int)5e5 + 10] = {};
int main() {
cin >> __s;
init(strlen(__s), __s);
int __x, __y;
while (cin >> __x >> __y)
cout << query(__x, __y) << '\n';
return 0;
}
#endif
Compilation message
brperm.cpp: In function 'int query(int, int)':
brperm.cpp:39:14: error: 's' was not declared in this scope
39 | string t(s.begin() + i, s.begin() + i + (1 << k));
| ^