#include <bits/stdc++.h> #include <string> #include <vector> using namespace std; //看看a包不包含t bool t_in_I(int t,int a) { string s1=to_string(t); string s2=to_string(a); if(s1.length()>s2.length()) return false; if(s2.find(s1)!=string::npos) return true; return false; } int main() { int N,m; while(cin>>N) { vector<int> ans;//收集答案 vector<int> I(N,0); for(int i=0;i<N;i++) { cin>>I[i]; } cin>>m; set<int> R; int data; while(m--) { cin>>data; R.insert(data); } //以上处理输入 for(auto it:R) {//从R依次中取出R<i>,对I进行处理,找到满足条件的I: int t=it; int cnt=0; bool flag=0;//默认I中没有合适的 for(int i=0;i<I.size();i++) { if(t_in_I(t,I[i])) { if(flag==0) {//有合适的 ans.push_back(t); ans.push_back(-1);//先给满足条件的I的个数占个位,因为现在并不知道cnt是多少 flag=1; } ans.push_back(i);//满足条件的I在I序列中的位置索引(从0开始) ans.push_back(I[i]); cnt++; } } if(cnt) for(int i=0;i<ans.size();i++) if(ans[i]==-1) ans[i]=cnt; } ans.insert(ans.begin(),1,ans.size()); for(int i=0;i<ans.size();i++) cout<<ans[i]<<" "; cout<<endl; } } // 64 位输出请用 printf("%lld")