Preskoči na glavno vsebino
Učilnica FRI 24/25
  • Domov
  • Več
Zapri
Preklopi iskalni vnos
Slovenščina ‎(sl)‎
English ‎(en)‎ Slovenščina ‎(sl)‎ Македонски ‎(mk)‎ Русский ‎(ru)‎ 한국어 ‎(ko)‎
Trenutno uporabljate gostujoči dostop
Prijavite se
Učilnica FRI 24/25
Domov
Razširi vse Skrči vse
  1. aps1uni
  2. Drevesne strukture
  3. Autocomplete

Autocomplete

Zahteve zaključka
Rok za oddajo: nedelja, 24. november 2024, 23.59

Implementirajte funkcionalnost, ki se bo uporabljala v urejevalniku besedila kot autocomplete funkcija. Podan je slovar besed z njihovo pomembnostjo, ki odraža pogostost uporabe. Napišite program, ki bo prebral slovar in nato učinkovito odgovarjal na poizvedbe o najpomembnejši besedi, ki se začne s podano predpono (upoštevamo tudi besedo, ki se povsem ujema s predpono). Slovar vsebuje same različne besede. Prav tako so pomembnosti besed sama različna cela števila.

Omejitve podatkov:

  • $1 \leq N \leq 10^6$ in $1 \leq M \leq 10^6$
  • $1 \leq |S_i| \leq 10^5$ in $1 \leq |T_i| \leq 10^5$
  • $\sum |S_i| \leq 10^6$ in $\sum |T_j| \leq 10^6$
  • $1 \leq P_i \leq 10^9$

Vhodni in izhodni podatki:

Prva vrstica vsebuje število besed $N$ v slovarju, ki so nato podane v naslednjih $N$ vrsticah. V $i$-ti ($i = 1..N$) sledeči vrstici je poleg $i$-te besede $S_i$ še s presledkom ločena pomembnost te besede $P_i$. Besede so poljubni nizi sestavljeni iz malih črk angleške abecede in niso omejene na dejanske angleške ali slovenske besede. Sledi število poizvedb $M$, ki so podane v naslednjih vrsticah z enim nizom $T_j$.

Za vsako poizvedbo izpišite v svoji vrstici zaporedno številko $i$ tiste besede, ki se začne z nizom $T_j$ in ima med vsemi takimi besedami največjo pomembnost. V primerih, ko take besede v slovarju sploh ni, izpišite 0.

Zaradi velike količine vhodnih in izhodnih podatkov predlagamo, da odgovore na vsako poizvedbo shranite v seznam in jih na koncu izpišete vse naenkrat. Izmenjava pisanja in branja namreč povzroči splakovanje izhoda, tako kot uporaba endl.

Primer vhoda:

7
algoritem 20
drevo 1
zaba 3
zebra 10
algebra 4
alge 8
program 5
4
alge
x
a
zeb

Pravilen izhod:

6
0
1
4
Trenutno uporabljate gostujoči dostop (Prijavite se)
Pridobi mobilno aplikacijo
Stran poganja Moodle
Obvestilo o avtorskih pravicah