rt,大佬能帮忙康一下为什么错吗/kel
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
int n,nxt[maxn],m,p[maxn];
string a,b;
char stk[maxn];
signed main() {
cin>>a>>b;
n=a.size();
m=b.size();
nxt[0]=0;
for(int i=1,j=0;i<m;i++) {
while(j&&b[j]!=b[i]) {
j=nxt[j];
}
if(b[j]==b[i]) {
j++;
}
nxt[i]=j;
}
int cnt=-1;
for(int i=0,j=0;i<n;i++) {
stk[++cnt]=a[i];
while(j&&a[i]!=b[j]) {
j=nxt[j];
}
if(a[i]==b[j]) {
j++;
}
p[i]=j;
if(j==m) {
cnt-=m;
j=p[cnt];
}
}
n=cnt;
for(int i=0;i<=n;i++) {
cout<<stk[i];
}
return 0;
}