Anagrammes – Regional event 2003

Level 4

Énoncé

Des anagrammes sont des mots qui, lorsque l'on change l'ordre de leurs lettres, donnent un autre mot. Les deux mots forment un couple d'anagrammes. Par exemple : chien/niche, limace/malice, image/magie, olive/voile.

On vous donne en paramètre une chaîne de caractères, contenant des mots formés de lettres minuscules sans accents, séparés par des espaces (une seul espace entre chaque paire de mots). Écrivez une fonction qui détermine combien de couples d'anagrammes on peut former à partir des mots de cette chaîne.

Un même mot peut apparaître dans deux couples, du moment que le deuxième mot du couple n'est pas le même. Attention, la chaîne peut contenir des mots en double ! Veillez à ne pas compter deux fois le même couple d'anagrammes!

Entrée

Vous devez lire deux lignes sur l'entrée :

  • La première ligne contient un entier $L$ : le nombre de caractères de la chaîne.
  • La deuxième ligne contient la chaîne de caractères.

Sortie

Vous devez écrire une ligne sur la sortie :

  • Le nombre de couples d'anagrammes formés à partir des mots de la chaîne.

Contraintes

  • $1 \le L \le 200$

Runtime constraints

Maximum memory usage
1000 kilobytes
Maximum execution time
250 milliseconds

Input/output samples

Sample input
103
le chien marche vers sa niche et trouve une limace de chine nue pleine de malice qui lui fait du charme
Sample output
6

Submit your solution

You have to register or log in to be able to submit your solution.