CCC-99 (1999) - 2 (Y2K)

View as PDF

Submit solution

Points: 30 (partial)
Time limit: 1.0s
Memory limit: 1023K

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

Εντάξει, ξέρατε ότι έπρεπε να υπάρχει πρόβλημα Y2K, οπότε ορίστε.

Σας δίνεται ένα έγγραφο που περιέχει κείμενο και αριθμητικά δεδομένα, τα οποία μπορεί να περιλαμβάνουν ημερομηνίες. Το καθήκον σας είναι να προσδιορίσετε (διψήφια) έτη και να εκτυπώσετε ξανά το έγγραφο με αυτά τα διψήφια έτη να αντικατασταθούν από τετραψήφια έτη. Μπορείτε να υποθέσετε ότι οποιοδήποτε έτος με αριθμό 24 ή μικρότερο είναι στη δεκαετία του 2000, ενώ κάθε έτος με αριθμό 25 ή μεγαλύτερο είναι στη δεκαετία του 1900 (π.χ. το 16 αντιπροσωπεύει το έτος 2016 και το 26 το έτος 1926). Ναι, γνωρίζουμε ότι αυτός ο κανόνας μπορεί να σημαίνει ότι η γιαγιά σας δεν έχει γεννηθεί ακόμα.

Το πρόγραμμά σας είναι να αναγνωρίζει ημερομηνίες σε οποιαδήποτε από τις τρεις μορφές:

dd/mm/yy yy.mm.dd Month,dd,yy

όπου dd είναι μια διψήφια ημέρα μεταξύ 01 και 31, mm είναι ένας διψήφιος μήνας μεταξύ 01 και 12, yy είναι ένα διψήφιο έτος μεταξύ 00 και 99, και Month είναι έναας από τους μήνες: January, February, March, April, May, June, July, August, September, October, November, December. Οι δύο πρώτες μορφές δεν περιέχουν κενά και η τρίτη μορφή περιέχει ένα μόνο διάστημα μετά τον μήνα και ένα μόνο διάστημα μετά το κόμμα.

Οι ημερομηνίες πρέπει να εμφανίζονται σε μία μόνο γραμμή. Ημερομηνίες που διασχίζουν δύο γραμμές ή ημερομηνίες ακριβώς δίπλα σε ένα γράμμα της αλφαβήτου ή ένα ψηφίο, δεν πρέπει να αναγνωρίζονται. Ανύπαρκτα δεδομένα όπως η 30η Φεβρουαρίου, 99 (February 30, 99) δεν χρειάζεται να ελεγχθούν.

Η πρώτη γραμμή εισόδου στο πρόγραμμά σας θα περιέχει έναν θετικό ακέραιο n, που υποδεικνύει τον αριθμό των γραμμών κειμένου που θα ακολουθήσουν. Σε κάθε γραμμή κειμένου θα βρείτε όλες τις ημερομηνίες που εμφανίζονται σε οποιαδήποτε από τις παραπάνω μορφές και θα αντικαταστήσετε το διψήφιο έτος με το κατάλληλο τετραψήφιο έτος όπως περιγράφεται παραπάνω.

Παράδειγμα

input

4
Before 02/03/04, but not after December 19, 99,
there was a rehash of the 55.34.02 meeting. A date, like November 15,
95 cannot traverse two lines, nor can it be surrounded by alphabetics
or numerics like this: 78November 01, 88, or 6801/12/03, or 02/03/04x.

output

Before 02/03/2004, but not after December 19, 1999,
there was a rehash of the 55.34.02 meeting. A date, like November 15,
95 cannot traverse two lines, nor can it be surrounded by alphabetics
or numerics like this: 78November 01, 88, or 6801/12/03, or 02/03/04x.

Comments

There are no comments at the moment.