Решение задачи Веселая шутка с Codeforces

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


Вот и прошли новогодние праздники. Для Деда Мороза и его коллег пришло время отдыха и приема гостей. Когда встречаются два «Новогодних Деда», то их помощники в честь такого знаменательного события вырезают из картона буквы имен гостя и хозяина, и вывешивают над парадным входом. Однажды ночью, когда все легли спать, кто-то снял все буквы имен наших персонажей. Затем он, возможно, перемешал эти буквы, и положил в одну кучку перед дверью.

Наутро так и не удалось найти виновника беспорядка, но всех заинтересовал еще один вопрос: можно ли из букв, сложенных перед дверью, заново составить имена гостя и хозяина? То есть нужно проверить, что не останется лишних, и не придется вырезать дополнительные буквы.

Помогите «Новогодним Дедам» и их друзьям разобраться с этой проблемой, если вам даны обе надписи, висевшие над парадной дверью вечером, и буквы в кучке, найденной перед парадной дверью утром.

Код

#include <iostream>

using namespace std;

int main()
{
    string s, s1, s3;
    cin >> s >> s1 >> s3;
    s+=s1;
    for(int i = 0; i < s.size(); ++i){
        int pos = s3.find(s[i]);
        if(pos + 1){
            s3.erase(s3.begin() + pos);
            if(!s3.size()){
                cout << "YES";
                return 0;
            }
            continue;
        }
        else{
            cout << "NO";
            return 0;
        }
    }
    if(s3.size())
        cout << "NO";
    else
        cout << "YES";
    return 0;
}

         

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



Комментарии

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