#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
#define Uni All Right
#define REP(i,a,b) for(int i=(a),i##_end_=(b);i<i##_end_;++i)
#define DREP(i,a,b) for(int i=(a),i##_end_=(b);i>i##_end_;--i)
#define LREP(i,a) for(int i=Head[a];i;i=Next[i])
#define LL long long
void Wt(int x){
static char stk[14],l;
do stk[++l]=x%10^48;
while(x/=10);
while(l)putchar(stk[l--]);
}
static const int M=100004;
int n,k,Cnt[M];
int SA[M],Ht[M<<1],Rk[M<<1];
char S[M];
void Init(){
int *A=Rk,*B=Ht;
REP(i,1,n+1)++Cnt[A[i]=(S[i]-'a'+1)];
REP(i,1,233)Cnt[i]+=Cnt[i-1];
REP(i,1,n+1)SA[Cnt[A[i]]--]=i;
for(int v=1;v<=n;v<<=1){
int m=0;
REP(i,n-v+1,n+1)B[++m]=i;
REP(i,1,n+1){
if(SA[i]>v)B[++m]=SA[i]-v;
Cnt[A[SA[i]]]=i;
}
DREP(i,n,0)SA[Cnt[A[B[i]]]--]=B[i];
B[SA[1]]=m=1;
REP(i,2,n+1)B[SA[i]]=B[SA[i-1]]+(A[SA[i]]!=A[SA[i-1]] || A[SA[i]+v]!=A[SA[i-1]+v]);
swap(A,B);
if(A[SA[n]]==n)break;
}
REP(i,1,n+1)Rk[SA[i]]=i;
int h=0,j;
REP(i,1,n+1)if((j=Rk[i])>1){
h?--h:0;
j=SA[j-1];
while(i+h<=n && j+h<=n && S[i+h]==S[j+h])++h;
Ht[Rk[i]]=h;
}
}
int main(){
scanf("%s",S+1);
n=strlen(S+1);
Init();
REP(i,1,n+1)Wt(SA[i]),putchar(" \n"[i==n]);
REP(i,2,n+1)Wt(Ht[i]),putchar(" \n"[i==n]);
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 35.24 us | 56 KB | Wrong Answer | Score: -100 | 显示更多 |
| Subtask #1 Testcase #2 | 42.43 us | 56 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #3 | 36.5 us | 56 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 44.54 us | 56 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 36.84 us | 56 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 38.28 us | 56 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 6.387 ms | 2 MB + 384 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 20.239 ms | 2 MB + 608 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 8.679 ms | 2 MB + 472 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 5.457 ms | 1 MB + 640 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 5.869 ms | 1 MB + 684 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 11.706 ms | 2 MB + 672 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 10.917 ms | 2 MB + 692 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #14 | 9.178 ms | 2 MB + 500 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #15 | 9.034 ms | 2 MB + 504 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #16 | 11.694 ms | 2 MB + 672 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #17 | 11.83 ms | 2 MB + 672 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #18 | 12.097 ms | 2 MB + 672 KB | Accepted | Score: 0 | 显示更多 |