#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int Search_Brother_Word(int num){
string str;
string word;
int BW_index;//输出兄弟单词的序号,在vec_BW中要减1输出
vector <string> vec;
vector <string> vec_BW;
for(int i = 0; i < num; i++){
cin >> str;
vec.push_back(str);
}
sort(vec.begin(),vec.end());
cin >> word;
cin >> BW_index;
string word_copy = word; //拷贝一份指定的单词,作为基准比较(字母顺序未变动
sort(word.begin(),word.end());
for(int i = 0; i < vec.size(); i++){
if(vec[i].size() == word.size()){
if(vec[i] != word_copy){//长度相同且字母顺序不同的单词,才可能是兄弟单词,这里反复用单词的拷贝来作为基准
string copy = vec[i]; //提前拷贝一份字典中的单词,作为后续写入兄弟单词字典的样本(需要的话)
sort(vec[i].begin(),vec[i].end());
if(vec[i] == word){//原本不相同的单词,经过字母排序后相同,才是互为兄弟单词
vec_BW.push_back(copy);//把排序前的加入兄弟单词
}
}
}
}
//分类输出结果
//兄弟单词字典为空
if(vec_BW.size() == 0){
cout << 0 << endl;
}
//兄弟单词字典不为空,但待查找的兄弟单词不存在
else if(((vec_BW.size() > 0) && (vec_BW.size() < BW_index)) || ((vec_BW.size() > 0) && (BW_index < 1))){
cout << vec_BW.size() << endl;
}
//兄弟单词字典不为空,且待查找的兄弟单词存在
else if(((vec_BW.size() > 0) && (vec_BW.size() >= BW_index)) && (BW_index >= 1)){
cout << vec_BW.size() << endl << vec_BW[BW_index - 1] << endl;
}
return 0;
}
int main(){
int num;
while(cin >> num){
Search_Brother_Word(num);
}
return 0;
}
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int Search_Brother_Word(int num){
string str;
string word;
int BW_index;//输出兄弟单词的序号,在vec_BW中要减1输出
vector <string> vec;
vector <string> vec_BW;
for(int i = 0; i < num; i++){
cin >> str;
vec.push_back(str);
}
sort(vec.begin(),vec.end());
cin >> word;
cin >> BW_index;
string word_copy = word; //拷贝一份指定的单词,作为基准比较(字母顺序未变动
sort(word.begin(),word.end());
for(int i = 0; i < vec.size(); i++){
if(vec[i].size() == word.size()){
if(vec[i] != word_copy){//长度相同且字母顺序不同的单词,才可能是兄弟单词,这里反复用单词的拷贝来作为基准
string copy = vec[i]; //提前拷贝一份字典中的单词,作为后续写入兄弟单词字典的样本(需要的话)
sort(vec[i].begin(),vec[i].end());
if(vec[i] == word){//原本不相同的单词,经过字母排序后相同,才是互为兄弟单词
vec_BW.push_back(copy);//把排序前的加入兄弟单词
}
}
}
}
//分类输出结果
//兄弟单词字典为空
if(vec_BW.size() == 0){
cout << 0 << endl;
}
//兄弟单词字典不为空,但待查找的兄弟单词不存在
else if(((vec_BW.size() > 0) && (vec_BW.size() < BW_index)) || ((vec_BW.size() > 0) && (BW_index < 1))){
cout << vec_BW.size() << endl;
}
//兄弟单词字典不为空,且待查找的兄弟单词存在
else if(((vec_BW.size() > 0) && (vec_BW.size() >= BW_index)) && (BW_index >= 1)){
cout << vec_BW.size() << endl << vec_BW[BW_index - 1] << endl;
}
return 0;
}
int main(){
int num;
while(cin >> num){
Search_Brother_Word(num);
}
return 0;
}