Preskoči na glavno vsebino
Učilnica FRI 23/24
  • Domov
  • Več
Zapri
Preklopi iskalni vnos
Slovenščina ‎(sl)‎
English ‎(en)‎ Slovenščina ‎(sl)‎ Македонски ‎(mk)‎ Русский ‎(ru)‎ 한국어 ‎(ko)‎
Trenutno uporabljate gostujoči dostop
Prijavite se
Domov
Course Activities
Forumi Naloge Viri
Nedavno dostopani predmeti
You are not enrolled in any courses
  1. aps1uni
  2. Autocomplete

Autocomplete

Zahteve zaključka
Rok za oddajo: nedelja, 19. november 2023, 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
◄ koda s predavanj (2)
Vreča ►
Trenutno uporabljate gostujoči dostop (Prijavite se)
Pridobi mobilno aplikacijo Obvestilo o avtorskih pravicah
Stran poganja Moodle