COCI-18 (2018) - Γύρος #6 - 1 (Lun)

View as PDF

Submit solution

Points: 15 (partial)
Time limit: 1.0s
Memory limit: 64M

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

Η μαμά Tihana ήθελε να αγοράσει στην κόρη της Leda ένα λούτρινο παιχνίδι μέσω ενός ηλεκτρονικού καταστήματος. Κατά τη διαδικασία αγοράς, το σύστημα ζήτησε να εισαχθεί ένας αριθμός πιστωτικής κάρτας. Ωστόσο, η αγορά απέτυχε επειδή η Tihana έγραψε, κατά λάθος, ένα από τα ψηφία του αριθμού. Η έρευνα στο διαδίκτυο αποκάλυψε ότι τέτοια συστήματα αναγνωρίζουν τον λάθος αριθμό με βάση τον αλγόριθμο του Luhn. Αυτός ο αλγόριθμος επιβεβαιώνει την ορθότητα του αριθμού χρησιμοποιώντας ένα ψηφίο ελέγχου που είναι πάντα το τελευταίο ψηφίο του αριθμού. Τα βήματα για τον προσδιορισμό της εγκυρότητας ενός αριθμού είναι:

  • Ξεκινώντας από το δεύτερο ψηφίο από τα δεξιά στον αριθμό (δεκάδες), διπλασιάστε την τιμή κάθε δεύτερου ψηφίου προς τα αριστερά. Εάν αυτό το γινόμενο είναι μεγαλύτερο από εννέα, τότε τα ψηφία αυτού του προϊόντος πρέπει να αθροίζονται.
  • Υπολογίστε το άθροισμα όλων των τιμών που λήφθηκαν στο προηγούμενο βήμα.
  • Το άθροισμα που προκύπτει θα πρέπει να πολλαπλασιαστεί επί εννέα και να προσδιοριστεί το υπόλοιπο της διαίρεσης με το δέκα.
  • Εάν το υπόλοιπο που προκύπτει είναι ίσο με το τελευταίο ψηφίο του αριθμού (μονάδες), ο αριθμός θεωρείται έγκυρος.

Π.χ. Ο αριθμός λογαριασμού 79927398713 θεωρείται έγκυρος επειδή το τελικευταίο από τα δεξιά ψηφίο, το 3, μπορεί να ληφθεί από τα υπόλοιπα ψηφία με τον τρόπο που περιγράφεται.

Αριθμός λογαριασμού 7 9 9 2 7 3 9 8 7 1 3
Διπλασιασμός ανά 2 7 18 9 4 7 6 9 16 7 2 -
Άθροισμα 7 9 (8 + 1) 9 4 7 6 9 7 (6 + 1) 7 2 = 67

(Άθροισμα μετά το ενδιάμεσο βήμα · 9) mod 10 = (67 · 9) mod 10 = 603​ mod 10 =​ 3


Γράψτε ένα πρόγραμμα που να φορτώνει τον αριθμό της κάρτας ως μια συμβολοσειρά N, που αποτελείται μόνο από ψηφία και ακριβώς ένα σύμβολο "x" και να εκτυπώνει τον μικρότερο μονοψήφιο αριθμό με τον οποίο μπορούμε να αντικαταστήσουμε το σύμβολο "x" έτσι ώστε ο αριθμός του λογαριασμού να είναι έγκυρος.

Είσοδος

Στην πρώτη γραμμή υπάρχει ένας ακέραιος αριθμός N\;(1 \le N \le 100), το μήκος της συμβολοσειράς της δοκιμαστικής περίπτωσης.
Στη δεύτερη γραμμή υπάρχει μια συμβολοσειρά μήκους N, που αποτελείται μόνο από τους χαρακτήρες "0", "1", "2", "3", "4", "5", "6", "7" , "8", "9" και ακριβώς έναν χαρακτήρα "x".

Έξοδος

Στη μοναδική γραμμή εξόδου θα πρέπει να τυπωθεί ο απαιτούμενος μονοψήφιος αριθμός.

Βαθμολογία

Σε δοκιμαστικές περιπτώσεις συνολικής αξίας 25 πόντων, το σύμβολο "x" θα βρίσκεται πάντα στην τελευταία θέση της συμβολοσειράς.

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

input

11
7992739871x

output

3

input

5
x2464

output

5

input

10
93380x1696

output

1

Comments

There are no comments at the moment.