Salve a tutti,
devo svolgere questo progetto dell'università come da titolo cercando di usare al meglio un algoritmo che sia veloce.L'università mette a disposizione un server su cui noi studenti possiamo caricare il nostro programma e quest'ultimo effettua dei test verificando con un input molto grande la velocità d'esecuzione del programma.Fortunatamente dopo svariati tentativi sono riuscito ad ottenere il risultato "Correct " , ma vorrei migliorare la mia posizione in classifica rendendo il mio algoritmo ancora più efficiente.


Preferirei inviare la mia soluzione in privato per evitare che qualcuno la veda

La traccia è la seguente :

PROBLEMA:
Sia S una collezione di stringhe. Ogni stringa in S è associata ad una serie di tag.Ad esempio la stringa “ruota” è associata ai tag “automobile” e “panoramica”.
Implementare una struttura dati che permetta di gestire l’inserimento di nuovestringhe e la stampa delle stringhe a partire dai tag.
In particolare, le operazioni possibili sono:


  • a elem tag1 ... tagN -1: Associa i tag1 ... tagN (N>=1) alla stringa elem (i tagsono separati da uno spazio, il -1 indica la fine della specificadell’operazione).
  • s subtag -1: Stampa il numero di tutte le stringhe distinte associate ai tagriferiti da “subtag” (il -1 indica la fine della specifica dell’operazione).

o La stringa subtag si riferisce a tutti i tag di cui è prefisso. Ad esempio,il subtag aut si riferisce ai tag automobile, auto, autovettura, autista,ecc.
o Se nessun tag è associato al subtag, stampare la stringa speciale“missing”.
Note:
- Un elemento può apparire più volte in operazioni di add. Esempio:

o a pesca frutta sport -1o a pesca colore -1
o a pesca frutta sport -1o a mela frutta -1
- Ogni tag può essere associato ad uno o più elementi. Nell’esempio sopra,frutta è associato sia a pesca che a mela.


INPUT
La lettura dovrà avvenire da standardinput. Per ogni test, la prima lineacontiene il carattere i e un intero n cherappresenta il numero di operazioni daeffettuare. Le restanti n linee contengonole operazioni da effettuare.
N.B.: L’ultima riga conterrà la stringa“<END>”.

OUTPUT
L’output del programma è dato dallestampe dell’operazione s.




Esempio INPUT


i3
a duna automobile deserto -1a nissan auto automobile -1s aut -1
i2
a pesca sport frutta -1
s sport -1
<END>





Esempio OUTPUT

2
1








Suggerimenti ?