Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- int k;
- bool srvn(string s1, string s2) {
- vector<int> srv(k, 0);
- for (int i = 0; i < s1.length(); i++) {
- srv[s1[i] - 'a']++;
- srv[s2[i] - 'a']--;
- }
- for (int i : srv) {
- if (i != 0)
- return false;
- }
- return true;
- }
- int main() {
- string s1, s2, pods1, pods2;
- int n;
- char a, b;
- cin >> k >> n;
- vector<vector<bool>> vec(k, vector<bool>(k, false));
- for (int i = 0; i < n; i++) {
- cin >> a >> b;
- vec[a - 'a'][b - 'a'] = true;
- vec[b - 'a'][a - 'a'] = true;
- }
- cin >> s1 >> s2;
- if (!srvn(s1, s2)) {
- cout << "NO";
- return 0;
- }
- for (int i = 1; i < k; i++) {
- for (int j = 0; j < i; j++) {
- if (vec[i][j]) {
- pods1 = "";
- pods2 = "";
- char a = i + 'a';
- char b = j + 'a';
- for (int k = 0; k < s1.size(); k++) {
- if (s1[k] == a || s1[k] == b) pods1 += s1[k];
- if (s2[k] == a || s2[k] == b) pods2 += s2[k];
- }
- if (pods1 != pods2) {
- cout << "NO";
- return 0;
- }
- }
- }
- }
- cout << "YES";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement