Blindfold
Η Rose και ο Colin παίζουν ένα παιχνίδι στην αυλή τους. Δεδομένου ότι η πίσω αυλή είναι ορθογώνια, μπορούμε να τη σκεφτούμε ως ένα πλέγμα με σειρές και
στήλες. Η Rose και ο Colin βάζουν εμπόδια σε μερικά από τα τετράγωνα.
Το παιχνίδι παίζεται ως εξής:
Ο Colin δένει τα μάτια του και η Rose τον μεταφέρει σε κάποιο τετράγωνο πλέγμα (grid square) στην πίσω αυλή. Τον βάζει κάτω έτσι ώστε να κοιτάζει βόρεια, νότια, ανατολικά ή δυτικά. Ο Colin δεν γνωρίζει αυτήν την αρχική θέση ή την κατεύθυνση.
Στη συνέχεια, η Rose δίνει εντολή στον Colin να κάνει μια σειρά από κινήσεις στην πίσω αυλή. Κάθε κίνηση είναι μία από τις ακόλουθες:
- κινείται προς τα εμπρός, κατά ένα τετράγωνο στο πλέγμα, προς την κατεύθυνση που βλέπει ή
- στρέφεται κατά
μοίρες αριστερόστροφα, παραμένοντας στο ίδιο τετράγωνο ή
- στρέφεται κατά
μοίρες δεξιόστροφα, παραμένοντας στο ίδιο τετράγωνο.
Αφού κάνει αυτές τις κινήσεις, ο Colin στέκεται σε κάποια τελική θέση. Τώρα πρέπει να καταλάβει πού στέκεται. Θα τον βοηθήσετε γράφοντας ένα πρόγραμμα, ώστε να καθορίσει όλες τις πιθανές τελικές θέσεις. Ας υποθέσουμε ότι η αρχική θέση, η τελική θέση και όλες οι ενδιάμεσες θέσεις του Colin βρίσκονται στην πίσω αυλή, αλλά ποτέ σε ένα τετράγωνο που περιέχει ένα εμπόδιο. Μπορείτε επίσης να υποθέσετε ότι ο Colin βλέπει πάντα μια κατεύθυνση που είναι παράλληλη με τις πλευρές της πίσω αυλής (βόρεια, νότια, ανατολικά ή δυτικά).
Η είσοδος ξεκινά με τα και
, το καθένα σε ξεχωριστή γραμμή. Ακολουθούν
γραμμές
χαρακτήρων, που περιγράφουν την πίσω αυλή: ένας χαρακτήρας τελείας υποδηλώνει ένα τετράγωνο του πλέγματος από το οποίο μπορεί να περάσει ο Colin. Ένας χαρακτήρας
υποδηλώνει ένα τετράγωνο του πλέγματος με ένα εμπόδιο. Κάτω από το πλέγμα είναι ο αριθμός
ακολουθούμενος από
γραμμές που περιγράφουν τις κινήσεις του Colin. Κάθε γραμμή έχει έναν μόνο χαρακτήρα:
,
ή
.
Το πρόγραμμά σας θα πρέπει να τυπώνει το πλέγμα της πίσω αυλής, υποδεικνύοντας όλες τις πιθανές τελικές θέσεις με τον χαρακτήρα *.
Παράδειγμα
input
2
4
....
.XX.
3
F
R
F
output
.*..
.XX*
Comments