
#include <iostream>#include <vector>#include <algorithm>#include <string>using namespace std;bool match(int num,int find){ string str_num = to_string(num); string str_find = to_string(find); //******************************* //字符串查找子串 //******************************* int flag = str_find.find(str_num); if(flag!=-1) return true; else return false;}int main(){ int I_num,R_num,Temp; while(cin>>I_num) { vector<int> I_vec; vector<int> R_vec; for(int i = 0;i<I_num;i++) { cin>>Temp; I_vec.push_back(Temp); } cin>>R_num; for(int i = 0;i<R_num;i++) { cin>>Temp; R_vec.push_back(Temp); } //******************************* //排序去重 //******************************* sort(R_vec.begin(),R_vec.end()); R_vec.erase(unique(R_vec.begin(), R_vec.end()), R_vec.end());//去重 //******************************* //unique,去重,把重复的元素扔在后面,返回首地址 //******************************* //分类存放 vector<int> R_out_vec; vector<int> I_cnt_vec; vector<int> I_index_vec; vector<int> I_out_vec; for(int i = 0;i<R_vec.size();i++) { int cnt = 0; for(int j = 0;j<I_num;j++) { if(match(R_vec[i],I_vec[j])) { cnt++; I_index_vec.push_back(j); I_out_vec.push_back(I_vec[j]); } } if(cnt!=0) { R_out_vec.push_back(R_vec[i]); I_cnt_vec.push_back(cnt); } } cout<<R_out_vec.size()+I_cnt_vec.size()+I_index_vec.size()+I_out_vec.size()<<' '; //分类调用 int off_set = 0; for(int i = 0;i<R_out_vec.size();i++) { cout<<R_out_vec[i]<<' '; cout<<I_cnt_vec[i]<<' '; for(int j = 0;j<I_cnt_vec[i];j++) { cout<<I_index_vec[j+off_set]<<' '; cout<<I_out_vec[j+off_set]<<' '; } off_set+=I_cnt_vec[i]; } cout<<endl; }}