#include #include using namespace std; // Zadefinuje hist jako pole int[26] typedef int hist [26]; // Projde s znak po znaku a spočítá četnosti void spocitejHistogram(string s, hist histogram) { for (int i = 0; i < 26; i++) histogram[i] = 0; for (char c : s) { // (c - 'a') je pořadí znaku v abecedě histogram[c - 'a']++; } } // Vrátí true, pokud slovo B můžeme poskládat z písmen slova A bool muzemeVytvorit(hist A, hist B) { for (int i = 0; i < 26; i++) if (A[i] < B[i]) // Máme dost písmen? return false; return true; } int main() { string str; cin >> str; // Nejprve si připravíme slovo S hist pampeliska; spocitejHistogram(str, pampeliska); int N; cin >> N; for (int i=0; i < N; i++) { // Pro každé slovo ze vstupu cin >> str; hist slovo; spocitejHistogram(str, slovo); if (muzemeVytvorit(pampeliska, slovo)) cout << str << endl; } return 0; }