CCC-10 (2010) - J5 (Knight Hop)

View as PDF

Submit solution

Points: 50 (partial)
Time limit: 1.0s
Memory limit: 256M

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

Παρακάτω είναι μια σκακιέρα 8 \times 8 της οποίας τα τετράγωνα θα τα προσδιορίζουμε χρησιμοποιώντας διατεταγμένα ζεύγη, όπως υποδεικνύεται. Για παράδειγμα, παρατηρήστε ότι το πιόνι A βρίσκεται στη θέση (2,2) και το πιόνι B στη θέση (4,3).

8                
7                
6                
5                
4                
3       B        
2   A            
1                
1 2 3 4 5 6 7 8

Το άλογο είναι ένα σπέσιαλ πιόνι που μπορεί να πηδήξει πάνω από άλλα κομμάτια, κινούμενο σε μοτίβο "L". Συγκεκριμένα, στο παρακάτω διάγραμμα, το K αντιπροσωπεύει την αρχική του θέση και οι αριθμοί 1 έως 8 αντιπροσωπεύουν πιθανές θέσεις στις οποίες το άλογο μπορεί να μετακινηθεί.

8                
7                
6     8   1      
5   7       2    
4       K        
3   6       3    
2     5   4      
1                
1 2 3 4 5 6 7 8

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

Είσοδος

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

Έξοδος

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

Παράδειγμα

input

2 1
3 3

output

1

input

4 2 
7 5

output

2

Comments

There are no comments at the moment.