CCC-12 (2012) - S2 (Aromatic Numbers)

View as PDF

Submit solution

Points: 20 (partial)
Time limit: 1.0s
Memory limit: 256M

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

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

Ένας αρωματικός αριθμός έχει τη μορφή ARARAR . . . AR, όπου κάθε A είναι ένα αραβικό ψηφίο και κάθε R είναι ένας λατινικός αριθμός. Κάθε ζεύγος AR συνεισφέρει μια τιμή που περιγράφεται παρακάτω, και προσθέτοντας ή αφαιρώντας αυτές τις τιμές μεταξύ τους παίρνουμε την τιμή ολόκληρου του αρωματικού αριθμού.

Ένα αραβικό ψηφίο A μπορεί να είναι 0, 1, 2, 3, 4, 5, 6, 7, 8 ή 9. Ένας λατινικός αριθμός R είναι ένα από τα επτά γράμματα I, V, X, L, C, D ή M. Κάθε λατινικός αριθμός έχει μια τιμή βάσης:

Σύμβολο I V X L C D M
Τιμή βάσης 1 5 10 50 100 500 1000

Η τιμή ενός ζεύγους AR είναι A επί την τιμή βάσης του R. Κανονικά, θα προσθέταμε τις τιμές των ζευγών για να πάρουμε τη συνολική τιμή. Ωστόσο, όπου υπάρχουν διαδοχικά σύμβολα ARA'R' με R' να έχει αυστηρά μεγαλύτερη τιμή βάσης από το R, η τιμή του ζεύγους AR πρέπει να αφαιρεθεί από το σύνολο, αντί να προστεθεί.

Για παράδειγμα, ο αριθμός 3M1D2C έχει την τιμή 3 * 1000 + 1 * 500 + 2 * 100 = 3700 και 3X2I4X έχει την τιμή 3 * 10 - 2 * 1 + 4 * 10 = 68.

Γράψτε ένα πρόγραμμα που να υπολογίζει τις τιμές των αρωματικών αριθμών.

Είσοδος

Η είσοδος θα είναι ένας έγκυρος αρωματικός αριθμός που θα αποτελείται από 2 έως 20 σύμβολα.

Έξοδος

Η έξοδος θα είναι η δεκαδική τιμή του συγκεκριμένου αρωματικού αριθμού.

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

input

3M1D2C

output

3700

input

2I3I2X9V1X

output

-16

Comments

There are no comments at the moment.