蒟蒻没看出错误,求助
#include<bits/stdc++.h>
using namespace std;
const int L=2e5+10;
string str[3];
int ans=INT_MAX,pi[L];
inline int calc(void){
int ret=str[0].size()+str[1].size()+str[2].size();
memset(pi,0,sizeof(pi));
string ss=str[1]+"#"+str[0];int len=ss.size();
for(int i=1,j=0;i<len;i++){
while(j && ss[i]!=ss[j])j=pi[j-1];
if(ss[i]==ss[j])j++;
pi[i]=j;
}
ret-=pi[len-1];
ss=str[2]+"#"+str[0].substr(0,str[0].size()-pi[len-1])+str[1];len=ss.size();
memset(pi,0,sizeof(pi));
for(int i=1,j=0;i<len;i++){
while(j && ss[i]!=ss[j])j=pi[j-1];
if(ss[i]==ss[j])j++;
pi[i]=j;
}
ret-=pi[len-1];
return ret;
}
signed main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin>>str[0]>>str[1]>>str[2];
ans=min(ans,calc());
swap(str[1],str[2]);
ans=min(ans,calc());
swap(str[0],str[1]);
ans=min(ans,calc());
swap(str[1],str[2]);
ans=min(ans,calc());
swap(str[0],str[1]);
ans=min(ans,calc());
swap(str[1],str[2]);
ans=min(ans,calc());
cout<<ans;
return 0;
}