/*Surprising Strings 子串比较
2008-08-04 18:03:44 Accepted 2814 C++ 00:00.00 2988K 天将降大任于我
三个for循环查找是否有相等的子串,发现有两个子串相等,则输出,退出循环
想法:先从j入手,再到i,再到k
*/
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;int i,j,k,n;bool f;
while(cin>>s&&s!="*")
{ f=0;
n=s.length();
for(i=1;i<n;i++)
for(j=0;j<n;j++)
{ if(i+j>=n) break;
for(k=0;k<n;k++)
{
if(i+j+k>=n)break;
if(s[j]==s[j+1+k]&&s[j+i]==s[j+1+i+k]) {f=1;cout<<s<<" is NOT surprising."<<endl;k=n;j=n;i=n;}
}
}
if(!f) { cout<<s<<" is surprising."<<endl;continue;}
}
return 0;
}
心难泰,世风坏,旧时正气今何在?正义寡,人情薄,闻道虽多,茅塞不开。怪!怪!怪!
空等待,几多载,冲出重围人心快!暴雨打,狂风袭,任他折磨,此志难改。耐!耐!耐!