不知道怎么错了。
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define re register
#define il inline
const int N=1e5+10,p=998244353,M=4e6+10;
int n;
string s[M];
int bk=1917;
string ans;
il void solve(){
cin>>n;for(re int i=1;i<=n;++i) cin>>s[i];
for(re int i=1;i<=n;++i){
int len=-1,k1=0,k2=0,wk=1;
for(re int j=0,k=ans.size()-1;j<s[i].size()&&k>=0;++j,--k){
k1=(k1*bk%p+(s[i][j]-'a'))%p;
k2=(k2+(ans[k]-'a')*wk%p)%p,wk=wk*bk%p;
if(k1==k2) len=j;
}
for(re int j=len+1;j<s[i].size();++j) ans+=s[i][j];
}
cout<<ans;
return ;
}
signed main(){
solve();
return 0;
}