Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <stack>
- #include <algorithm>
- #include <cmath>
- #include <utility>
- #include <list>
- #include <vector>
- #include <map>
- using namespace std;
- bool num(char x) {
- if((int)x >= (int)'0' && (int)x <= (int)'9') return true;
- return false;
- }
- bool coincidence (string person, string pattern) {
- vector <char> per;
- vector <char> pat;
- for (int i = 0; i < person.length(); i++) {
- if (num(person[i])) per.push_back(person[i]);
- }
- for (int i = 0; i < pattern.length(); i++) {
- if (num(pattern[i])) pat.push_back(pattern[i]);
- if (pattern[i] == 'X') {
- while (pattern[i] == 'X') {
- pat.push_back(pattern[i]);
- i++;
- }
- break;
- }
- }
- if (per.size() == pat.size()) {
- int i = 0;
- while (pat[i] != 'X') {
- if (pat[i] != per[i]) return false;
- i++;
- }
- i = 0;
- int counter = 0;
- while(pattern[i] != 'X') {
- if(pattern[i] == pat[counter]) counter++;
- cout << pattern[i];
- i++;
- }
- for (int s = counter + 1; s < per.size(); s++) cout << per[s];
- for (int s = 0; s < pattern.length(); s++) {
- if (pattern[s] != 'X') continue;
- while (pattern[s] == 'X') s++;
- for (int k = s; k < pattern.length(); k++) cout << pattern[k];
- break;
- }
- cout << endl;
- return true;
- }
- return false;
- }
- int main()
- {
- int n, m;
- cin >> n;
- vector <string> person(n);
- string tmp;
- getline(cin, tmp);
- for (int i = 0; i < n; i++) {
- getline(cin, tmp);
- person[i] = tmp;
- }
- cin >> m;
- vector <string> pattern(m);
- getline(cin, tmp);
- for (int i = 0; i < m; i++) {
- getline(cin, tmp);
- pattern[i] = tmp;
- }
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) coincidence(person[i], pattern[j]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement