求助
查看原帖
求助
664234
I_AM_THREE_BODY_MAN楼主2024/6/1 14:33

站外题: 奶牛们为了打发时间,想出了一个游戏来玩。第一只奶牛说出一个只含有3个小写字母的在单词表里的单词,接下来的每只奶牛必须在上一个单词里加入一个字母(可以加在头、尾或中间),使得成为的新单词是能在单词表里找到的。他们想知道最后得到的单词有多长。 给出含有D(D<=1000)个单词的单词表,请找出他们最后能得到的最长的单词。

70分求调 代码如下

#include<bits/stdc++.h>
using namespace std;
int n,t,ma;
string s,a[10005],p[10005],y;
bool cmp(string s1,string s2){
	return s1.size()<s2.size();
}
int main(){
	cin>>n>>s;
	p[++t]=s;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=n;i++){
		for(int j=0;j<a[i].size();j++){
			string s=a[i].substr(0,j)+a[i].substr(j+1,a[i].size()-i-1);
			for(int k=1;k<=n;k++){
				if(a[k]==s){
					p[++t]=a[i];
					break;
				}
			}
		}
	}
	cout<<p[t];
	return 0;
}
2024/6/1 14:33
加载中...