brperm.cpp: In member function 'void Sparse::build()':
brperm.cpp:37:64: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
37 | normalHash[i][lgLen] = (1LL * base[(1 << lgLen - 1)] * normalHash[i][lgLen - 1] + normalHash[i + (1 << lgLen - 1)][lgLen - 1]) % MOD;
| ~~~~~~^~~
brperm.cpp:37:126: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
37 | normalHash[i][lgLen] = (1LL * base[(1 << lgLen - 1)] * normalHash[i][lgLen - 1] + normalHash[i + (1 << lgLen - 1)][lgLen - 1]) % MOD;
| ~~~~~~^~~
brperm.cpp:40:133: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
40 | danceHash[i][lgLen][lgH] = (1LL * base[1 << lgH] * danceHash[i][lgLen - 1][lgH + 1] + danceHash[i + (1 << lgLen - 1)][lgLen - 1][lgH + 1]) % MOD;
| ~~~~~~^~~
brperm.cpp:29:38: warning: iteration 20 invokes undefined behavior [-Waggressive-loop-optimizations]
29 | danceHash[i][0][lgH] = s[i] - 'a' + 1;
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
brperm.cpp:27:36: note: within this loop
27 | for (int lgH = 0 ; lgH < 2 * MAXLOG ; ++lgH)
| ~~~~^~~~~~~~~~~~
/usr/bin/ld: /tmp/cc25WJrg.o:(.bss+0x0): multiple definition of `s'; /tmp/ccOsV5Bj.o:(.bss+0x326d31a0): first defined here
collect2: error: ld returned 1 exit status