51分wa123求调
查看原帖
51分wa123求调
1086113
cloudcn楼主2024/5/5 15:47
#include<bits/stdc++.h>
using namespace std;
int n,use[30],ans1;
string s[25];
char c;
int length(string s1,string s2){
    for(int i=1;i<s1.size()&&i<s2.size();i++){
        int t=0;
        for(int j=0;j<i;j++){
            if(s1[s1.size()-i+j]!=s2[j]){
                t=1;
                break;
            } 
        }
        if(t==0) return s2.size()-i;
    }
    return -1;
}
int search(string ss){
    int ans=0;
    for(int i=1;i<=n;i++){
        if(length(ss,s[i])>0&&use[i]<2){
            use[i]++;
            int t1 = search(s[i]) + length(ss,s[i]);
            ans=max(ans,t1);
            use[i]--;
        }
    }
    return ans;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++) cin>>s[i];
    cin>>c;
    for(int i=1;i<=n;i++){
        if(s[i][0]==c){
            int t=search(s[i])+s[i].size();
            ans1=max(ans1,t);
        }
    }
    cout<<ans1<<endl;
    return 0;
}
2024/5/5 15:47
加载中...