比赛 |
CSP2023-J模拟赛 |
评测结果 |
EEEEEEAEEEEEAEEEAAEA |
题目名称 |
切分子串 |
最终得分 |
25 |
用户昵称 |
gzy2508 |
运行时间 |
2.609 s |
代码语言 |
C++ |
内存使用 |
4.30 MiB |
提交时间 |
2023-10-18 18:51:46 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
ifstream fin("cutstring.in");
ofstream fout("cutstring.out");
#define cin fin
#define cout fout
string s,t;
string t1,t2;
int ans,len1,len2;
int get(int x){
int cnt=0;
for(int i=x+1;i<len2;i++){
t2[cnt]=t[i];
cnt++;
}
return cnt;
}
int main(){
cin>>s;
cin>>t;
ans=t.length()-1;
if(s==t){
cout<<ans<<endl;
exit(0);
}
len2=ans+1;
len1=s.length();
for(int i=0;i<len2-1;i++){
t1+=t[i];
int lt2=get(i);
bool j1=0,j2=0;
int cnt1=0,cnt2=0;
int last1=0;
for(int j=0;j<=len1;j++){
if(cnt1==i+1){
j1=1;
break;
}
if(s[j]!=t1[cnt1]){
cnt1=0;
j=last1;
last1++;
continue;
}
cnt1++;
}
int last2=0;
for(int j=0;j<=len1;j++){
if(cnt2==lt2){
j2=1;
break;
}
if(s[j]!=t2[cnt2]){
cnt2=0;
j=last2;
last2++;
continue;
}
cnt2++;
}
if(!j1||!j2){
ans--;
}
};
cout<<ans<<endl;
return 0;
}
//abaaaabccaaac
//abaaac