File tree Expand file tree Collapse file tree 2 files changed +8
-8
lines changed
library/strings/suffix_array
tests/library_checker_aizu_tests/strings Expand file tree Collapse file tree 2 files changed +8
-8
lines changed Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ auto sa_short(const auto& s) {
1717 for (int j = 1 ; j <= n; j *= K) {
1818 vi x (sa_inv);
1919 auto cmp = [&](int i1, int i2) {
20- rep (k, 0 , K) {
20+ rep (k, 0 , K) {
2121 int a = i1 + j * k < n ? x[i1 + j * k] : -1 ;
2222 int b = i2 + j * k < n ? x[i2 + j * k] : -1 ;
2323 if (a != b) return a < b;
@@ -26,16 +26,16 @@ auto sa_short(const auto& s) {
2626 };
2727 sort (all (sa), cmp);
2828 sa_inv[sa[0 ]] = 0 ;
29- rep (i, 1 , n)
30- sa_inv[sa[i]] = sa_inv[sa[i - 1 ]] + cmp (sa[i - 1 ], sa[i]);
29+ rep (i, 1 , n) sa_inv[sa[i]] =
30+ sa_inv[sa[i - 1 ]] + cmp (sa[i - 1 ], sa[i]);
3131 }
32- int sz = 0 ;
32+ int l = 0 ;
3333 rep (i, 0 , n) {
34- if (sz > 0 ) sz --;
34+ if (l > 0 ) l --;
3535 if (sa_inv[i] == 0 ) continue ;
3636 int j = sa[sa_inv[i] - 1 ];
37- while (max (i, j) + sz < n && s[i + sz ] == s[j + sz];) sz ++;
38- lcp[sa_inv[i] - 1 ] = sz ;
37+ while (max (i, j) + l < n && s[i + l ] == s[j + l]) l ++;
38+ lcp[sa_inv[i] - 1 ] = l ;
3939 }
4040 return tuple{sa, sa_inv, lcp};
4141}
Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ int main() {
1010 string s;
1111 cin >> s;
1212 auto [sa, sa_inv, lcp] = sa_short (vi (all (s)));
13- rep (i, 0 , sz (s)) {
13+ rep (i, 0 , sz (s)) {
1414 assert (sa[sa_inv[i]] == i);
1515 assert (sa_inv[sa[i]] == i);
1616 }
You can’t perform that action at this time.
0 commit comments