0分求调
查看原帖
0分求调
215817
gyc071116楼主2024/8/5 18:27

样例能过,不知道错哪了

#include<bits/stdc++.h>
using namespace std;
int times[25],n;
string a[25];
int search(int len,int last){
	int maxx=len;
	for(int i=1;i<=n;i++){
		if(times[i]!=2){
			for(int j=1;j<min(a[last].size(),a[i].size());j++){
				int o=0;
				for(int k=1;k<=j;k++){
					if(a[last][a[last].size()+k-1-j]!=a[i][k-1]){
						o=1;
						break;
					}
				}
				if(!o){
					times[i]++;
					maxx=max(maxx,search(len+a[i].size()-j,i));
					times[i]--;
					break;
				}
			}
		}
	}
	return maxx;
}
int main(){
	char b;
	scanf("%d",&n);
	for(int i=1;i<=n;i++) cin>>a[i];
	scanf("%c",&b);
	scanf("%c",&b);
	int maxx=0;
	for(int i=1;i<=n;i++){
		if(a[i][0]==b){
			times[i]++;
			maxx=max(maxx,search(a[i].size(),i));
			times[i]--;
		}
	}
	printf("%d",maxx);
	return 0;
}
2024/8/5 18:27
加载中...