Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <cstdio>
- #include <vector>
- #include <string>
- #include <iostream>
- #include <algorithm>
- #include <map>
- #include <iterator>
- #include <functional>
- #include <set>
- #include <stack>
- #include <queue>
- #include <deque>
- #include <fstream>
- #include <iomanip>
- #include <numeric>
- #include <cmath>
- #include <list>
- #include <sstream>
- #include <cstring>
- #include <stdio.h>
- using namespace std;
- #pragma GCC optimize("O3")
- #pragma GCC target("sse4")
- typedef long double LD;
- typedef long long LL;
- typedef unsigned long long ULL;
- typedef pair<int, int> PII;
- typedef pair<LD, LD> PDD;
- typedef pair<LL, int> PLL;
- typedef vector<int> VI;
- typedef vector<LL> VLL;
- typedef vector<char> VCH;
- typedef vector<LD> VLD;
- typedef vector<string> VS;
- typedef vector<VS> VSS;
- typedef vector<VI> VVI;
- typedef vector<VLL> VVLL;
- typedef vector<VCH> VVCH;
- typedef vector<PII> VPII;
- typedef vector<PLL> VPLL;
- typedef vector<PDD> VPDD;
- #define MP make_pair
- #define PB push_back
- #define X first
- #define Y second
- #define next fake_next
- #define prev fake_prev
- #define left fake_left
- #define right fake_right
- #define FOR(i,a,b) for(int i = (a); i < (b); ++i)
- #define RFOR(i,b,a) for(int i = (b) - 1; i >= (a); --i)
- #define REP(i, t) FOR(i,0,t)
- #define ALL(a) a.begin(), a.end()
- #define SZ(a) (int)((a).size())
- #define FILL(a, value) memset(a, value, sizeof(a))
- const LD PI = acos(-1.0);
- const LD EPS = 1e-4;
- const LL INF = 1e7 - 1;
- const LL mod = 1000000007;
- const LL LINF = 1e18 + 10;
- const int MAXN = 100001;
- const int MAXK = 101;
- bool check(char x, char y)
- {
- if (x + 32 == y || y + 32 == x || x== y)
- return 1;
- if (x >= 'a' && x <= 'z')
- {
- if (y >= 'a' && y <= 'z')
- return (x == 'i' || x == 'l') && (y == 'i' || y == 'l');
- else
- {
- if (y >= 'A' && y <= 'Z')
- return (x == 'i' || x == 'l') && (y == 'I' || y == 'L');
- else
- return (y == '0' && x == 'o') || (y == '1' && (x == 'l' || x == 'i'));
- }
- }
- else
- {
- if (x >= 'A' && x <= 'Z')
- {
- if (y >= 'a' && y <= 'z')
- return (x == 'I' || x == 'L') && (y == 'i' || y == 'l');
- else
- {
- if (y >= 'A' && y <= 'Z')
- return (x == 'I' || x == 'L') && (y == 'I' || y == 'L');
- else
- return (y == '0' && x == 'O') || (y == '1' && (x == 'L' || x == 'I'));
- }
- }
- else
- {
- if (y >= 'A' && y <= 'Z')
- return (x == '0' && y == 'O') || (x == '1' && (y == 'L') || (y == 'I'));
- else
- return (x == '0' && y == 'o') || (x == '1' && (y == 'l') || (y == 'i'));
- }
- }
- }
- bool check(string s, string t)
- {
- if (SZ(s) != SZ(t))
- return 0;
- FOR(i, 0, SZ(s))
- if (s[i] != t[i])
- {
- if (!check(s[i], t[i]))
- return 0;
- }
- return 1;
- }
- int main()
- {
- //ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
- //freopen("Out.txt", "w", stdout);
- string s, t;
- cin >> s;
- int n;
- cin >> n;
- FOR(i, 0, n)
- {
- cin >> t;
- if (check(s, t))
- {
- cout << "No";
- return 0;
- }
- }
- cout << "Yes";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement