WA on #5 求条
查看原帖
WA on #5 求条
993404
harmis_yz楼主2023/12/4 17:13

不知道怎么错了。

#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;
}

2023/12/4 17:13
加载中...