COCI-12 (2012) - Γύρος #4 - 3 (Voyager)

View as PDF

Submit solution

Points: 35 (partial)
Time limit: 1.0s
Memory limit: 32M

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

Το διαστημικό σκάφος Voyager 1 (δεν πρέπει να συγχέεται με το διαστημόπλοιο κλάσης Intrepid) εκτοξεύτηκε πριν από πολύ καιρό, το 1977, και επί του παρόντος βρίκεται στα πρόθυρα της εγκατάλειψης του ηλιακού μας συστήματος. Καθώς ταξιδεύει περισσότερο στο διάστημα, έχει προγραμματιστεί να αφήνει ένα μήνυμα ραδιοφωνικού σήματος σε οποιοδήποτε αστρικό σύστημα περνάει, για να σηματοδοτεί την πορεία του σκάφους για όσο το δυνατόν περισσότερο.

Ας υποθέσουμε ότι ένα αστρικό σύστημα μπορεί να αναπαρασταθεί από ένα ορθογώνιο πλέγμα με N σειρές και M στήλες, διαιρώντας το χώρο σε N κελιά, με M ίσα κελιά. Κάθε κύτταρο μπορεί να περιέχει έναν μόνο πλανήτη, μαύρη τρύπα ή να είναι κενό. Ο αισθητήρας εκπέμπει το σήμα από ένα προκαθορισμένο κενό κελί, σε μία από τις τέσσερις ευθυγραμμισμένες με άξονα κατευθύνσεις ("U"-πάνω, "R"-δεξιά, "D"-κάτω, "L"-αριστερά).

Κατά τη μετάδοση, το σήμα διαδίδεται σε ευθεία γραμμή κατά μήκος της ίδιας σειράς/στήλης μέχρι να φτάσει σε έναν πλανήτη, όπου εκτρέπεται κατά 90 μοίρες προς άλλη κατεύθυνση. Υπάρχουν δύο είδη πλανητών, τους οποίους θα συμβολίσουμε με "/" και "\". Οι κανόνες εκτροπής φαίνονται στην παρακάτω εικόνα:

coci12d3-figure.svg

Το σήμα φεύγει μόνιμα από το σύστημα είτε με την είσοδο σε ένα κελί που περιέχει μια μαύρη τρύπα είτε με τη διάδοση εκτός των άκρων του ορθογώνιου πλέγματος. Είναι επίσης γνωστό ότι το σήμα χρειάζεται ένα δευτερόλεπτο για να διαδοθεί από το τρέχον κελί σε ένα γειτονικό.

Γράψτε ένα πρόγραμμα για να προσδιορίσετε την κατεύθυνση προς την οποία ο αισθητήρας πρέπει να εκπέμπει το σήμα έτσι ώστε να παραμείνει εντός του συστήματος για όσο το δυνατόν περισσότερο, δίνοντας τη βέλτιστη κατεύθυνση καθώς και τον μεγαλύτερο χρόνο που προκύπτει. Εάν είναι δυνατό το σήμα να παραμείνει στο σύστημα επ' αόριστον, εξάγετε το μήνυμα "Voyager" αντί του απαιτούμενου χρόνου.

Είσοδος

Η πρώτη γραμμή εισόδου περιέχει δύο θετικούς ακέραιους, N\;(1 \le N \le 500) και M\;(1 \le M \le 500).
Κάθε μία από τις ακόλουθες N γραμμές περιέχει M χαρακτήρες από το σύνολο {"/', "\', "C', "."}, όπου τα "/' και "\' αντιπροσωπεύουν τα δύο είδη πλανητών, το "C' αντιπροσωπεύει ένα μαύρη τρύπα και "." αντιπροσωπεύει ένα κενό κελί.
Η τελευταία γραμμή εισαγωγής περιέχει δύο θετικούς ακέραιους αριθμούς, PR\;(1 \le PR \le N) και PC\;(1 \le PC \le M), τον αριθμό σειράς και στήλης, αντίστοιχα, του κελιού όπου βρίσκεται ο ανιχνευτής.

Έξοδος

Η πρώτη γραμμή εξόδου πρέπει να περιέχει την απαιτούμενη βέλτιστη κατεύθυνση εκπομπής ("U", "R", "D" ή "L").
Εάν η λύση δεν είναι μοναδική, επιλέξτε την πρώτη βέλτιστη με την ακόλουθη σειρά προτεραιότητας: πρώτα "U", μετά "R", μετά "D" και τέλος "L".
Η δεύτερη γραμμή εξόδου πρέπει να περιέχει τον απαιτούμενο μεγαλύτερο χρόνο (ή μήνυμα).

Βαθμολογία

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

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

input

5 5
../.\
.....
.C...
...C.
\.../
3 3

output

U
17
Επεξήγηση του 1ου παραδείγματος:

Το "*" αντιπροσωπεύει τη διαδρομή του σήματος:

    αρχή    'U'κατεύθυνση   'R'κατεύθυνση     'D'κατεύθυνση      'L'κατεύθυνση
    ../.\        *.***           ../.\             ../.\              ../.\        
    .....        *.*.*           .....             .....              .....
    .CS..        *C*.*           .C***             .C*..              .C*..
    ...C.        *..C*           ...C.             ..*C.              ...C.
    \.../        *****           \.../             \.*./              \.../

input

5 5
....\
\..\.
./\..
\../C
.\../
1 1

output

D
12

input

5 7
/.....\
../..\.
\...../
/.....\
\.\.../
3 3

output

R
Voyager

Comments

There are no comments at the moment.