#include #include #include #include std::string readValue() { std::string str; std::cin >> str; size_t pos = str.find('*'); std::string front = str.substr(0, pos); std::string back; if (pos != str.npos) { back = str.substr(pos + 1); } std::string middle(9 - (front.size() + back.size()), '?'); // std::cout << front << "+" << middle << "+" << back << "\n"; return front + middle + back; } int main() { int i; std::cin >> i; std::vector filters; for (; i > 0; --i) { std::string v = readValue(); std::cout << v << "\n"; filters.push_back(v); } std::cin >> i; std::string value; for (; i > 0; --i) { value = readValue(); // std::cout << value << "\n"; int ok = 0; for (const std::string& f : filters) { bool correct = true; for (int i = 0; i < f.size(); ++i) { if (value[i] == '?') continue; if (value[i] != f[i]) { correct = false; break; } } ok += correct; } std::cout << ok << "\n"; } return 0; }