Índice de palabras X24468


Statement
 

pdf   zip

Un índice de un texto es una lista de todas las palabras que aparecen en él, junto con las posiciones donde se encuentran. Por ejemplo, dado el texto:

the cat sat on the mat the cat

el índice sería:

cat: 2 8
mat: 6
on: 4
sat: 3
the: 1 5 7

Fijaos en que las palabras del índice están ordenadas alfabéticamente, y las posiciones de cada palabra también están ordenadas.

Haced un programa que lea una secuencia de palabras y muestre el índice.

Observación

En este problema el centro de interés es la eficiencia. Hay que encontrar una forma inteligente de almacenar las palabras y sus posiciones para evitar búsquedas innecesarias.

Entrada

La entrada es una secuencia de palabras (en minúsculas, sin espacios internos), una por línea, acabada por fin de entrada. La primera palabra tiene la posición 1.

Salida

Para cada palabra diferente que aparece en el texto, se escribe una línea con la palabra, seguida de : y un espacio, y a continuación las posiciones donde aparece, ordenadas de menor a mayor y separadas por espacios. Las palabras se escriben en orden alfabético.

Public test cases
  • Input

    to
    be
    or
    not
    to
    be
    that
    is
    the
    question
    whether
    tis
    nobler
    in
    the
    mind
    to
    suffer
    the
    slings
    and
    arrows
    of
    outrageous
    fortune
    or
    to
    resist
    

    Output

    and: 21
    arrows: 22
    be: 2 6
    fortune: 25
    in: 14
    is: 8
    mind: 16
    nobler: 13
    not: 4
    of: 23
    or: 3 26
    outrageous: 24
    question: 10
    resist: 28
    slings: 20
    suffer: 18
    that: 7
    the: 9 15 19
    tis: 12
    to: 1 5 17 27
    whether: 11
    
  • Input

    el
    gat
    va
    seure
    sobre
    el
    gat
    i
    el
    gat
    va
    saltar
    

    Output

    el: 1 6 9
    gat: 2 7 10
    i: 8
    saltar: 12
    seure: 4
    sobre: 5
    va: 3 11
    
  • Information
    Author
    Pau Fernández
    Language
    Spanish
    Translator
    Pau Fernández
    Original language
    Catalan
    Other languages
    Catalan
    Official solutions
    C++
    User solutions
    C++