Решение задачи Три строки с Codeforces

Без пояснения   Просмотров: 23


Вам даны три строки a, b и c одинаковой длины n. Строки состоят только из строчных символов латинского алфавита. Тогда i-й символ строки a это ai, i-й символ строки b это bi, i-й символ строки c это ci.

Для всех i (1≤i≤n) вы должны поменять символ ci либо с ai, либо с bi (это значит поменять его значение в строке со значением другого символа в другой строке). То есть суммарно вы должны выполнить ровно n замен, каждая из которых это либо ci↔ai, либо ci↔bi (для всех целых i от 1 до n, включительно).

Например, если a это «code», b это «true» и c это «help», вы можете сделать строку c равной «crue», меняя 1-й и 4-й символы с соответствующими символами в строке a и остальные с соответствующими символами в строке b. В этом случае строка a станет равной «hodp» и строка b станет равной «tele».

Возможно ли так сделать замены, что строка a станет равна строке b?

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, t;
    cin >> n;
    string s, s1, s2;
    for(int i = 0; i < n; ++i){
        cin >> s1 >> s2 >> s;
        bool b = true;
        for(int j = 0; j < s.size(); ++j)
            if(s1[j] != s[j] && s2[j] != s[j]){
                cout << "NO";
                b = false;
                break;
            }
        if(b)
            cout << "YES";
        cout << endl;
    }

    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться