题目链接:https://vjudge.net/problem/SPOJ-REPEATS
推荐博客:https://blog.csdn.net/queuelovestack/article/details/53031731
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <bits/stdc++.h>
using namespace std;
const int MAX = 200010;
const int SIGMA_SIZE = 256;
int cntA[MAX], cntB[MAX], sa[MAX], tsa[MAX], A[MAX], B[MAX], height[MAX], Rank[MAX];
int n, data[MAX];
int bucket[SIGMA_SIZE];
char s[MAX];
void get_SA(char *ch) {
for (int i = 0; i < SIGMA_SIZE; i++) bucket[i] = 0;
for (int i = 1; i <= n; i++) bucket[ch[i - 1]]++;
for (int i = 1; i < SIGMA_SIZE; i++) bucket[i] += bucket[i - 1];
for (int i = n; i;