2631 - H4

De la Universitas MediaWiki

Context

Spunem că două cuvinte sunt anagrame dacă au aceleași litere, eventual în altă ordine. De exemplu, abac și baca sunt anagrame, dar abac și abbc nu sunt. Dându-se un șir de cuvinte separate prin spații sau enter, vom considera că dacă mai multe cuvinte sunt anagrame, atunci ele fac parte din același grup.

Cerinţa

Să se determine numărul maxim de cuvinte dintr-un grup.

Date de intrare

Programul citește de la tastatură o succesiune de cuvinte separate prin spații.

Date de ieșire

Programul va afișa pe ecran un singur număr reprezentând numărul maxim de cuvinte dintr-un grup. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu respecta cerintele impuse." , iar daca se indeplinesc, se afiseaza mesajul "Datele de intrare respecta cerintele impuse."

Restricţii şi precizări

  • Cuvintele au lungimea cel mult 14 și conțin numai litere mici.
  • Vor exista cel mult 100.000 de cuvinte în șir.

Exemplul 1

Intrare
alee leee   elea car   rac eela eeel  elee  elee
Ieșire
Datele de intrare respecta cerintele impuse.
4

Explicație

Grupul maximal este format din cuvintele leee, eeel, elee, elee.

Exemplul 2

Intrare
Alee leee   elea car   


Ieșire
Datele de intrare nu respecta cerintele impuse.


Rezolvare

def numar_maxim_anagrame(cuvinte):
    grupuri_anagrame = {}

    for cuvant in cuvinte:
        cheie = ''.join(sorted(cuvant))
        if cheie in grupuri_anagrame:
            grupuri_anagrame[cheie].append(cuvant)
        else:
            grupuri_anagrame[cheie] = [cuvant]

    numar_maxim = max(len(grup) for grup in grupuri_anagrame.values())

    return numar_maxim


if __name__ == "__main__":
    try:
        input_str = input()
        cuvinte = input_str.split()

        if all(1 <= len(cuvant) <= 14 and cuvant.islower() for cuvant in cuvinte) and 1 <= len(cuvinte) <= 100000:
            rezultat = numar_maxim_anagrame(cuvinte)
            print("Datele de intrare respecta cerintele impuse.")
            print(rezultat)
        else:
            print("Datele de intrare nu respecta cerintele impuse.")
    except ValueError:
        print("Datele de intrare nu respecta cerintele impuse.")