UVa-1238 - Free Parentheses

View as PDF

Submit solution

Points: 60 (partial)
Time limit: 9.0s
Memory limit: 256M

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

Σας δίνεται μια απλή αριθμητική έκφραση που αποτελείται μόνο από τελεστές πρόσθεσης και αφαίρεσης. Για παράδειγμα:

1 - 2 + 3 - 4 - 5

Μπορείτε ελεύθερα να βάλετε οποιεσδήποτε παρενθέσεις στην έκφραση, όπου θέλετε και όσες θέλετε. Ωστόσο, θα πρέπει να είναι μια έγκυρη έκφραση αφού βάλετε τις παρενθέσεις. Το ερώτημα είναι, πόσους διαφορετικούς αριθμούς μπορείτε να φτιάξετε;

Για παράδειγμα, προσθέτοντας παρενθέσεις στην παραπάνω έκφραση μπορείτε να πάρετε 6 διαφορετικές τιμές:

1 - 2 + 3 - 4 - 5 = -7
1 - (2 + 3 - 4 - 5) = 5
1 - (2 + 3) - 4 - 5 = -13
1 - 2 + 3 - (4 - 5) = 3
1 - (2 + 3 - 4) - 5) = -5
1 - (2 + 3) - (4 - 5) = -3

Είσοδος

Θα υπάρχουν πολλές εκφράσεις στην είσοδο. Κάθε έκφραση θα γράφεται σε μία γραμμή. Μια έκφραση θα αποτελείται μόνο από N\;(2 \le N \le 30) μη αρνητικούς αριθμούς μικρότερους του 100, χωρισμένους με τελεστές πρόσθεσης ή αφαίρεσης. Δεν θα υπάρχει κανένας τελεστής πριν από τον πρώτο αριθμό.

Έξοδος

Για κάθε έκφραση, εκτυπώστε τον αριθμό των διαφορετικών τιμών που μπορούν να προκύψουν από την έκφραση μέσω της προσθήκης οποιουδήποτε αριθμού παρενθέσεων.

Παράδειγμα

input

1 - 2 + 3 - 4 - 5
38 + 29 - 91
54 - 18 + 22 + 74

output

6
1
3

Comments

There are no comments at the moment.