CCC-08 (2008) - J3 (GPS Text Entry)

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
GPS Text Entry

Για τα γενέθλιά της, η Sandy απέκτησε μια μονάδα Global Positioning System (GPS), η οποία είναι μια ηλεκτρονική συσκευή που μπορεί να τη χρησιμοποιήσει για να παρακολουθεί τα τοπικά μονοπάτια πεζοπορίας. Στην πορεία της η Sandy έχει τη δυνατότητα να επισημάνει σημεία-ορόσημα τα οποία μπορούν να καταγραφούν σε έναν χάρτη όταν επιστρέψει στο σπίτι. Μια περιγραφή κάθε τέτοιου σημείου της διαδρομής μπορεί να εισαχθεί στη μονάδα GPS, ωστόσο η συσκευή δεν διαθέτει πληκτρολόγιο. Αντί αυτού, έχει τέσσερα κουμπιά με βελάκια, πάνω, κάτω, αριστερά και δεξιά και ένα κουμπί για την αποδοχή ενός γράμματος. Το μικρό αυτό πληκτρολόγιο μοιάζει ως εξής:

πινακας

Στην οθόνη απεικονίζεται ένα πλέγμα με γράμματα και σύμβολα που μπορούν να χρησιμοποιηθούν για να «πληκτρολογηθεί» μια περιγραφή. Η διάταξη του πλέγματος είναι η ακόλουθη:

A B C D E F
G H I J K L
M N O P Q R
S T U V W X
Y Z space - . enter

Όταν εισάγετε το όνομα ενός ορόσημου, ο κέρσορας ξεκινά από το A. Πρέπει να μετακινήσετε τον κέρσορα στη θέση του επόμενου γράμματος ή συμβόλου και στη συνέχεια να αποδεχτείτε αυτό το γράμμα. Ο κέρσορας μπορεί να μετακινηθεί μόνο σε τετράγωνα που είναι γειτονικά οριζόντια ή κάθετα (όχι διαγώνια). Αφού εισάγετε όλα τα γράμματα της περιγραφής, πρέπει να μετακινήσετε τον κέρσορα στο "enter" και να αποδεχτείτε ολόκληρη τη φράση.

Να γράψετε ένα πρόγραμμα που θα υπολογίζει τον αριθμό των κινήσεων του κέρσορα που απαιτούνται για να «πληκτρολογήσετε» μια φράση. Για παράδειγμα, για να εισάγετε τη λέξη "GPS", ξεκινώντας από τη θέση "A", θα πρέπει να μετακινηθείτε προς τα κάτω κατά 1 για να επιλέξετε "G", στη συνέχεια να μετακινηθείτε δεξιά 3 και κάτω 1 για να επιλέξετε "P", στη συνέχεια να μετακινηθείτε προς τα κάτω 1 και αριστερά 3 για να επιλέξετε "S" και, τέλος, να μετακινηθείτε προς τα κάτω 1 και δεξιά 5 για να επιλέξετε "enter". Πρόκειται για συνολικά 15 κινήσεις του κέρσορα. Ο συνολικός αριθμός των κινήσεων του κέρσορα δεν αλλάζει εάν επιλέξετε να μετακινηθείτε προς τα κάτω και στη συνέχεια κατά μήκος ή κατά μήκος και μετά προς τα κάτω. Επίσης, δεν μπορείτε να μετακινηθείτε πέρα από τα όρια του πλέγματος (π.χ., δεν μπορείτε να μετακινηθείτε έξω από το πλέγμα ούτε να κάνετε το "γύρο" του πλέγματος).

Είσοδος

Η είσοδος του πρόγραμμάτος σας θα είναι μια συμβολοσειρά το πολύ 40 χαρακτήρων. Μπορείτε να υποθέσετε ότι όλοι οι χαρακτήρες της συμβολοσειράς θα περιέχονται στο πλέγμα.

Έξοδος

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

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

input

GPS

output

15

input

ECHO ROCK

output

29

Comments

There are no comments at the moment.