CCC-96 (1996) - 4 (Rom)

View as PDF

Submit solution

Points: 40 (partial)
Time limit: 1.0s
Memory limit: 1M

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

Αν δεν είχε πέσει η Ρωμαϊκή Αυτοκρατορία, τότε η Ρώμη σίγουρα θα είχε ανακαλύψει τον ηλεκτρισμό και θα χρησιμοποιούσε ηλεκτρονικές αριθμομηχανές. Ωστόσο, οι Ρωμαίοι χρησιμοποιούσαν Ρωμαϊκούς Αριθμούς! Ο στόχος σας είναι να εφαρμόσετε μια απλή Ρωμαϊκή Αριθμομηχανή που δέχεται δύο Ρωμαϊκούς Αριθμούς και εξάγει το άθροισμα σε Ρωμαϊκούς Αριθμούς. Μπορείτε να υποθέσετε ότι αριθμοί μεγαλύτεροι από 1000 δεν θα εμφανίζονται στην είσοδο. Οι αριθμοί εξόδου μεγαλύτεροι από 1000 είναι παράνομοι και θα πρέπει να δημιουργήσουν το μήνυμα CONCORDIA CUM VERITATE (Σε άρμονία με την αλήθεια).

Η είσοδος αποτελείται από έναν αριθμό, που υποδεικνύει τον αριθμό των περιπτώσεων δοκιμής, ακολουθούμενο από τόσες περιπτώσεις δοκιμής. Κάθε δοκιμαστική περίπτωση αποτελείται από μία γραμμή με δύο αριθμούς στα λατινικά, που χωρίζονται με ένα + μαζί με ένα = στο τέλος. Δεν υπάρχουν διαχωριστικά κενά.

Για κάθε δοκιμαστική περίπτωση η έξοδος είναι ένα αντίγραφο της εισόδου με τον Ρωμαϊκό Αριθμό που αντιπροσωπεύει το άθροισμα. Οι έξοδοι για διαφορετικές περιπτώσεις δοκιμής διαχωρίζονται με μια κενή γραμμή.

Ρωμαϊκή Έρευνα

Οι Ρωμαϊκοί Αριθμοί που χρησιμοποιούσαν οι Ρωμαίοι εξελίχθηκαν με την πάροδο πολλών ετών, και έτσι υπάρχουν κάποιες παραλλαγές στον τρόπο γραφής τους. Θα χρησιμοποιήσουμε τους ακόλουθους ορισμούς:

  1. Χρησιμοποιούνται τα ακόλουθα σύμβολα: I για 1, V για 5, X για 10, L για 50, C για 100, D για 500 και M για 1000.
  2. Οι αριθμοί σχηματίζονται γράφοντας σύμβολα από το 1., από αριστερά προς τα δεξιά, ως άθροισμα, κάθε φορά χρησιμοποιώντας το σύμβολο για τη μεγαλύτερη δυνατή τιμή. Τα σύμβολα M, C, X ή I μπορούν να χρησιμοποιηθούν το πολύ τρεις φορές διαδοχικά. Μόνο εάν αυτός ο κανόνας παραβιαστεί, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κανόνα:
    • Όταν ένα μονό I βρίσκεται ακριβώς πριν από το V ή το X, αφαιρείται. Όταν ένα μόνο \(Χ\) βρίσκεται ακριβώς πριν από το L ή το C, αφαιρείται. Όταν ένα μόνο C βρίσκεται ακριβώς πριν από το D ή το M, αφαιρείται.

Για παράδειγμα: II = 2; IX = 9; CXIII = 113; LIV = 54; XXXVIII = 38; XCIX = 99.

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

input

3
VII+II=
XXIX+X=
M+I=

output

VII+II=IX
XXIX+X=XXXIX
M+I=CONCORDIA CUM VERITATE

Comments

There are no comments at the moment.