Module: Hachages


Problem

2 /2


HACHER

Theory Click to read/hide

Le hachage d'une chaîne est une représentation d'une chaîne sous la forme d'un certain nombre, unique (nous supposerons que le risque de collision est négligeable) pour chaque chaîne. Cela vous permet de stocker toutes les données importantes (comme les mots de passe) dans la base de données non pas sous forme de chaînes, mais sous forme de nombres. Cela vous permet de protéger les mots de passe si un attaquant parvient à accéder à la base de données de mots de passe, car il n'obtiendra pas les mots de passe eux-mêmes, mais uniquement leur représentation numérique, et il est presque impossible d'obtenir une chaîne par son hachage (surtout sans connaître l'algorithme de hachage ). 
Les hachages polynomiaux sont le plus souvent utilisés dans la programmation de problèmes de concurrence.
L'une des meilleures façons de déterminer la fonction de hachage de la chaîne S est la suivante :
h(S)  ; =  S[0]  +  S[1] * P  +  S[2] * P^2  +  S[3] * P^3  +  ...  +  S[N] * P^N

Problem

Le programmeur Vasya n'a pas eu de chance - au lieu de vacances, il a été envoyé en voyage d'affaires à une conférence scientifique. "Nous devons augmenter le niveau de connaissances", a déclaré le patron, "Une importante conférence sur la cryptographie se tient en France - et là-bas, ils ont chiffré à l'époque de Richelieu et ont déchiffré les chiffres des autres à l'époque de Vieta."
Vasya a rapidement découvert qu'il avait déjà vu tous les tableaux du Louvre quelque part, la vue de la Tour Eiffel lui est devenue ennuyeuse avant même que la souris ne l'efface du tapis, et nous fabriquons de telles pyramides de verre pour toutes sortes de kiosques et restaurants douteux. En un mot, il n'y avait tout simplement rien à voir à Paris, il n'y avait nulle part où pêcher, donc Vasya a dû assister à des rapports à la conférence.
L'un des orateurs, essayant une fois de plus de démêler les chiffres de Bacon, a émis l'hypothèse que la clé des mystères de Bacon peut être trouvée en analysant toutes les sous-chaînes possibles des œuvres de Bacon. "Mais il y en a trop !" Vasya a été surpris à haute voix. « Non, pas tellement ! - a crié l'orateur, - "Calculez, et vous verrez par vous-même!"
Le soir même, Vasya a trouvé les œuvres complètes de Bacon sur Internet. Il a écrit un programme qui a converti les textes en une longue ligne, en supprimant tous les espaces et les signes de ponctuation des textes. Et maintenant, Vasya est très perplexe : comment compter le nombre de sous-chaînes différentes de cette chaîne ? 

Entrée
L'entrée contient une chaîne non vide reçue par Vasya. La chaîne se compose uniquement de caractères latins minuscules. Sa longueur ne dépasse pas 2000 caractères. 

Sortie
Imprime le nombre de sous-chaînes différentes de cette chaîne.

 

Exemples
# Entrée Sortie
1 aaba 8