Skip to content

Commit 9a72891

Browse files
authored
Update suffix_array_short.hpp
1 parent d090096 commit 9a72891

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

library/strings/suffix_array/suffix_array_short.hpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,16 @@ auto sa_short(const auto& s) {
1515
vi sa(n), sa_inv(all(s)), lcp(n - 1);
1616
iota(all(sa), 0);
1717
for (int j = 1; j <= n; j *= K) {
18-
vi x(sa_inv), y(lcp);
18+
vi x(sa_inv), y(n, -1);
19+
rep (i, 0, n - 1) y[sa[i]] = lcp[i];
1920
int val;
2021
auto cmp = [&](int i1, int i2) {
2122
val = 0;
2223
rep (k, 0, K) {
2324
int a = i1 + j * k < n ? x[i1 + j * k] : -1;
2425
int b = i2 + j * k < n ? x[i2 + j * k] : -1;
2526
if (a != b) {
26-
if (a != -1) {
27-
if(a<n-1)val += y[a];
28-
} else val = n - i1;
27+
if (a != -1) val += y[i1 + j * k];
2928
return a < b;
3029
}
3130
val += j;

0 commit comments

Comments
 (0)