| 7 | int str[N]; |
| 8 | int buc[N], r[N], suf[N], X[N], Y[N], high[N]; |
| 9 | bool cmp(int *r, int a, int b, int x) { |
| 10 | return (r[a] == r[b] && r[a + x] == r[b + x]); |
| 11 | } |
| 12 | void suffix_array_DA(int n, int m) { |
| 13 | int *x = X, *y = Y, i, j, k = 0, l; |
| 14 | for (i = 0; i <= max(n, m); i++) buc[i] = 0; |