#include <iostream> #include <vector> #include <set> #include <string> using namespace std; int main() { int n; cin >> n; vector<string> I(n); for (auto& it : I) cin >> it; // 这个是把我们的I数组输入进去 int m; cin >> m; set<int> st; for (int i = 1; i <= m; i++) { int tmp; cin >> tmp; st.insert(tmp); } // 这个实现了我们R数组的去重和排序 vector<int> res; for (auto& it : st) { int cnt = 0; bool okk = false; // cnt是有多少个 // okk是我们是否找到 for (auto& it1 : I) { if (it1.find(to_string(it)) != string::npos) { cnt += 1; if (okk == false) { res.emplace_back(it); okk = true; } // 如果找到了我们存入数组 } } if (cnt != 0) { res.emplace_back(cnt); for (int i = 0; i < n; i++) { if (I[i].find(to_string(it)) != string::npos) { res.emplace_back(i); res.emplace_back(stoi(I[i])); } } // 我们每一次把我们的下标和我们的值存入 } } cout << res.size() << " "; for (auto& it : res) { cout << it << " "; } cout << "\n"; return 0; } // 64 位输出请用 printf("%lld")