COCI-11 (2011) - Γύρος #6 - 3 (Zagrade)

View as PDF

Submit solution

Points: 35 (partial)
Time limit: 1.0s
Memory limit: 32M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Python
Zagrade

Ο Mirko βαριόταν στο μάθημα της χημείας του, κι έτσι έπαιξε το Bomb Switcher στο κινητό του. Δυστυχώς, τον έπιασαν και του δόθηκε μια γελοία δύσκολη εργασία για το σπίτι. Για μια δεδομένη έγκυρη μαθηματική παράσταση με αγκύλες, πρέπει να βρει όλες τις διαφορετικές παραστάσεις που μπορούν να ληφθούν αφαιρώντας έγκυρα ζεύγη παρενθέσεων από την αρχική παράσταση. Δύο εκφράσεις είναι διαφορετικές αν υπάρχει χαρακτήρας στον οποίο διαφέρουν.

Για παράδειγμα, με δεδομένο (2+(2 \times 2)+2), μπορεί κανείς να πάρει (2+2 \times 2+2), 2+(2\times 2)+2 και 2+2 \times 2+2. Δεν είναι δυνατή η πρόσβαση στο (2+2 \times 2)+2 και 2+(2 \times 2+2), καθώς θα πρέπει να αφαιρέσουμε ζεύγη αγκύλων που δεν είναι έγκυρα. Περισσότερα από ένα ζεύγη αγκύλων μπορούν να περιβάλλουν το ίδιο τμήμα της έκφρασης.

Είσοδος

Η πρώτη και μοναδική γραμμή εισόδου περιέχει μια έγκυρη μαθηματική έκφραση που αποτελείται από μη αρνητικούς ακέραιους αριθμούς, βασικές αριθμητικές πράξεις που συμβολίζονται με χαρακτήρες "+‟, "*‟, "-‟ και "/‟, και αγκύλες "(" και ")".

Η δεδομένη έκφραση δεν θα έχει περισσότερους από 200 χαρακτήρες και θα έχει τουλάχιστον έναν και όχι περισσότερα από 10 ζεύγη παρενθέσεων. Κάθε έκφραση είναι εγγυημένη ότι έχει τουλάχιστον ένα ζεύγος παρενθέσεων.

Έξοδος

Τυπώστε όλες τις διαφορετικές εκφράσεις που μπορούν να ληφθούν αφαιρώντας έγκυρα ζεύγη παρενθέσεων, ταξινομημένα λεξικογραφικά.

Παραδείγματα

input

(0/(0))

output

(0/0)
0/(0)
0/0

input

(2+(2*2)+2)

output

(2+2*2+2)
2+(2*2)+2
2+2*2+2

input

(1+(2*(3+4)))

output

(1+(2*3+4))
(1+2*(3+4))
(1+2*3+4)
1+(2*(3+4))
1+(2*3+4)
1+2*(3+4)
1+2*3+4

Comments

There are no comments at the moment.