题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2328
暴力破万法。。emmm。。。
1 #include<cstdio> 2 #include<cstring> 3 #include<string> 4 #include<iostream> 5 using namespace std; 6 string s[4006]; 7 8 int main() 9 { 10 int n; 11 while( ~scanf("%d",&n)&&n){ 12 int under,len=300; 13 for(int i=1;i<=n;i++){ 14 cin >> s[i]; 15 if(len>s[i].size()){ 16 len=s[i].size(); 17 under=i; 18 } 19 } 20 string ans; 21 int num=0; 22 for(int i=len;i>0;i--){ 23 for(int j=0;j<len-i+1;j++){ 24 string s1=s[under].substr(j,i); 25 int flag=1; 26 for(int k=1;k<=n;k++){ 27 if(s[k].find(s1)==string::npos){ 28 flag=0; 29 break; 30 } 31 } 32 if(flag){ 33 if(num < s1.size()){ 34 num=s1.size(); 35 ans=s1; 36 } 37 if(ans>s1 && num==s1.size()){ 38 ans=s1; 39 } 40 } 41 } 42 if(num!=0) break; 43 } 44 if(num==0) cout << "IDENTITY LOST" << endl; 45 else cout << ans << endl; 46 } 47 return 0; 48 }