Reserved seats (reservedseats)

Qualcuno saprebbe darmi un consiglio per risolvere reserved seats?
Ho provato a formulare qualche algoritmo ed implementarlo, ma vado fuori tempo e mi risulta soltanto il primo task…sono alle prime armi.

quando affronti un problema devi innanzitutto pensare ad una struttura dati adatta al tuo scopo.
in questo caso per risolvere il problema la tua struttura dati ha bisogno di fare 2 cose:

  • far salire un passeggero
  • far scendere un passeggere

a sua volta la prima operazione si compone di:

  • individuare in che posizione si siederà il passeggero
  • risolvere l’eventuale catena che si crea e aggiornare le persone che si sona alzate

hai quindi bisogno di uno struttura che possa fare questo in tempo ragionevole.
un esempio di struttura inadatta è un array dove ti salvi nell’iesima posizione il posto riservato al passeggero che è seduto all’iesimo posto.

questo non basta perchè pur permettendoti di gestire ragionevolmente dove far sedere i passeggeri quando entrano nel treno, non ti permette di sapere dove è seduto uno specifico passeggero con facilità. rende quindi veloce la prima operazione ma molto lenta la seconda.

prova a cercare un modo di far scendere i passeggeri in tempo costante e vedi se puoi in qualche modo combinare le due strutture

1 Mi Piace