Stai guardando un viale e qualcuno ha lasciato fuori la spazzatura! È necessario scrivere un programma per aiutare a risolvere il problema, inserendo il cestino nei cestino.
L'obiettivo
Il viale è costituito da una stringa di caratteri ASCII stampabili, ad esempio:
[[](dust)[]] car ((paper)vomit) (broken(glass)) [[] (rotten) fence (dirty)
Alcune parentesi qui non hanno eguali; quelli sono solo esche. Ciò a cui teniamo sono i set di parentesi corrispondenti.
Un cestino è una stringa che inizia con [
e termina con ]
e con parentesi e parentesi abbinate internamente. Ad esempio, []
e [[](dust)[]]
sono pattumiere nella stringa sopra.
Un cestino è una stringa che inizia con (
e termina con )
e con parentesi e parentesi abbinate internamente. Ad esempio, (dust)
è un cestino nella stringa sopra.
È possibile che alcuni dei sacchetti della spazzatura siano già nei bidoni della spazzatura. Tuttavia, almeno uno sarà stato escluso e dobbiamo spostare i sacchetti della spazzatura in modo che siano tutti all'interno dei bidoni della spazzatura. In particolare, per ogni cestino che non è attualmente all'interno di un cestino (ovvero una sottostringa di quel cestino), dobbiamo rimuoverlo dalla sua posizione corrente nella stringa e inserirlo invece in un posto che si trova all'interno di un cestino .
C'è una regola aggiuntiva qui. Poiché non vogliamo spendere troppi soldi per i raccoglitori di rifiuti, e il loro percorso li porta lungo il viale da destra a sinistra, vogliamo spostare ogni sacco della spazzatura a sinistra (criterio più importante, supponendo che dobbiamo spostarlo a tutto) e la distanza più breve possibile (purché sia spostata a sinistra). Quindi, ad esempio, l'unico output corretto per
[can1](bag)[can2]
è
[can1(bag)][can2]
(spostando la borsa solo di un personaggio verso sinistra). Inoltre, i sacchetti devono rimanere nello stesso ordine relativo:
[can](bag1)(bag2)
deve diventare
[can(bag1)(bag2)]
(cioè non puoi metterlo (bag2)
a sinistra di (bag1)
.)
chiarimenti
- Non ci saranno sacchi della spazzatura a sinistra del cestino più a sinistra; sarà sempre possibile can tutta la spazzatura spostandola a sinistra.
- Ci sarà sempre almeno una borsa da spostare. Potrebbe essercene più di uno.
- Non ci sarà mai un bidone della spazzatura all'interno di un sacchetto della spazzatura (le lattine sono troppo preziose per essere gettate via).
- Se una borsa è già dentro una lattina, lasciala da sola.
- Va bene che l'input e l'output differiscano nello spazio bianco finale (comprese le nuove righe).
Esempi:
Ingresso:
[[](dust)[]] car ((paper)vomit) (broken(glass)) [[] (rotten) fence (dirty)
Produzione:
[[](dust)[]((paper)vomit)(broken(glass))] car [[(rotten)(dirty)] fence
Ingresso:
[]] (unusable) door (filthy) car
Produzione :
[(unusable)(filthy)]] door car