We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 0119dd6 commit 711cb9bCopy full SHA for 711cb9b
tests/library_checker_aizu_tests/strings/suffix_array_short.test.cpp
@@ -9,11 +9,22 @@ int main() {
9
cin.tie(0)->sync_with_stdio(0);
10
string s;
11
cin >> s;
12
- auto [sa, sa_inv, _] = sa_short(vi(all(s)));
13
- for (int i = 0; i < sz(s); i++) {
+ auto [sa, sa_inv, lcp] = sa_short(vi(all(s)));
+ rep (i, 0, sz(s)) {
14
assert(sa[sa_inv[i]] == i);
15
assert(sa_inv[sa[i]] == i);
16
}
17
+ vi lcp_kasai(sz(s) - 1);
18
+ int sz = 0;
19
+ rep(i, 0, n) {
20
+ if (sz > 0) sz--;
21
+ if (sa_inv[i] == 0) continue;
22
+ for (int j = sa[sa_inv[i] - 1];
23
+ max(i, j) + sz < n && s[i + sz] == s[j + sz];)
24
+ sz++;
25
+ lcp_kasai[sa_inv[i] - 1] = sz;
26
+ }
27
+ assert(lcp == lcp_kasai);
28
for (int val : sa) cout << val << " ";
29
cout << '\n';
30
0 commit comments