Решение задачи "Словарь" с Acmp

С пояснением   Просмотров: 30


Дан некоторый набор букв и словарь. Ваша задача - подсчитать, сколько различных слов из словаря можно составить из этих букв.


Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, res = 0;
    string t;
    cin >> n;
    vector<int> a(26);
    vector<string> s;
    for(int i = 0; i < n; ++i){
        cin >> t;
        s.push_back(t);
    }
    cin >> t;
    for(int i = 0; i < t.size(); ++i)
        a[t[i] - 97]++;
    vector<int> temp;
    for(int i = 0; i < s.size(); ++i){
        t = s[i];
        temp = a;
        bool b = true;
        for(int j = 0; j < t.size(); ++j)
            if(temp[t[j] - 97] < 1){
                b = false;
                break;
            }
            else{
                temp[t[j] - 97]--;
            }
        if(b)
            ++res;
    }
    cout << res;
    return 0;
}

         

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


Одну и ту же букву нельзя использовать дважды, но в наборе может быть несколько одинаковых букв.

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

Комментарии

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