We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent d090096 commit 9a72891Copy full SHA for 9a72891
library/strings/suffix_array/suffix_array_short.hpp
@@ -15,17 +15,16 @@ auto sa_short(const auto& s) {
15
vi sa(n), sa_inv(all(s)), lcp(n - 1);
16
iota(all(sa), 0);
17
for (int j = 1; j <= n; j *= K) {
18
- vi x(sa_inv), y(lcp);
+ vi x(sa_inv), y(n, -1);
19
+ rep (i, 0, n - 1) y[sa[i]] = lcp[i];
20
int val;
21
auto cmp = [&](int i1, int i2) {
22
val = 0;
23
rep (k, 0, K) {
24
int a = i1 + j * k < n ? x[i1 + j * k] : -1;
25
int b = i2 + j * k < n ? x[i2 + j * k] : -1;
26
if (a != b) {
- if (a != -1) {
27
- if(a<n-1)val += y[a];
28
- } else val = n - i1;
+ if (a != -1) val += y[i1 + j * k];
29
return a < b;
30
}
31
val += j;
0 commit comments