标签:
#include<iostream>
#include<string>
#include<set>
#include<cstring>
using namespace std;
set<string> s;
const int maxn = 1E4 + 10 ;
int dp[maxn];
int main(){
string str;
cin>>str;
memset(dp,0,sizeof(dp));
str = str.substr(5);
int n = str.length();
string tmp;
dp[n] = 1;
for(int i = n - 1; i >= 0 ; --i){
for(int l = 2 ; l <= 3 ; ++l){
tmp = str.substr(i, l);
if(( str.find(tmp,i + l) != i + l || dp[i + 5] ) && dp[i + l] ){
s.insert(tmp);
dp[i] = 1;
}
}
}
cout<<s.size()<<"\n";
for(set<string>::iterator its = s.begin(); its != s.end();++its){
cout<<*its<<"\n";
}
return 0;
}
[2016-05-04][codeforces][666A - Reberland Linguistics]
标签:
原文地址:http://www.cnblogs.com/qhy285571052/p/d51cf80b94c4caf676fa33aef57096e0.html