COCI-23 (2023) - Γύρος #2 - 2 (Pingvin)

View as PDF

Submit solution

Points: 30 (partial)
Time limit: 1.0s
Memory limit: 512M

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

Ο Zrakoplović ο πιγκουίνος θέλει να μάθει να πετά!

Μπορούμε να φανταστούμε τον χώρο στον οποίο θα μάθει να πετάει, ως ένα κύβο διαστάσεων n \times n \times n, χωρισμένο σε n^{3} μοναδιαίους κύβους. Κάθε μοναδιαίος κύβος μπορεί να περιγραφεί με τρεις συντεταγμένες (x, y, z), όπου x, y και z είναι ακέραιοι αριθμοί μεταξύ του 1 και του n. Η συντεταγμένη x δηλώνει την απόσταση από το αριστερό άκρο του χώρου, η συντεταγμένη y υποδηλώνει την απόσταση από το μπροστινό άκρο του χώρου, και η συντεταγμένη z υποδηλώνει το ύψος.

Ορισμένοι από αυτούς τους μοναδιαίους κύβους περιέχουν σύννεφα και ορισμένοι όχι.

Ο Zrakoplović φοβάται τα σύννεφα, οπότε θα μάθει να πετά μόνο εκεί όπου δεν υπάρχουν σύννεφα. Αρχικά βρίσκεται σε μια θέση (x_{s}, y_{s}, z_{s}), τέτοια ώστε z_{s} = 1 (δηλαδή στο ύψος 1), και θέλει να φτάσει στη θέση (x_{e}, y_{e}, z_{e}).

Προς το παρόν, τελειοποιεί την ικανότητα του να πετάει σε κατευθύνσεις που είναι παράλληλες προς έναν από τους άξονες του χώρου (δηλ. προς την κατεύθυνση του άξονα x, του άξονα y ή του άξονα z), και με ένα φτερούγισμα μπορεί να διασχίσει το πολύ ένα μοναδιαίο κύβο.

Πριν αποφασίσει να πετάξει, ο Zrakoplović θέλει να γνωρίζει πόσα φτερουγίσματα χρειάζεται για να φτάσει στην επιθυμητή του θέση. Ενώ προετοιμάζεται για την πτήση, βοηθήστε τον να απαντήσει σε αυτό το ερώτημα.

Είσοδος

Η πρώτη γραμμή θα περιέχει έναν ακέραιο αριθμό n\;(1 \le n \le 100), τη διάσταση του χώρου στον οποίο ο Zrakoplović μαθαίνει να πετάει.

Η δεύτερη γραμμή θα περιέχει τρεις ακέραιους x_{s}, y_{s} και z_{s}\;(1 \le x_{s}, y_{s} \le n,\;z_{s} = 1), τη θέση εκκίνησης του Zrakoplović.

Η τρίτη γραμμή θα περιέχει τρεις ακέραιους x_{e}, y_{e} και z_{e}\;(1 \le x_{e}, y_{e}, z_{e} \le n), την τελική θέση του Zrakoplović.

Ακολουθούν n δυαδικοί πίνακες διαστάσεων n \times n που περιγράφουν τον χώρο, όπου ο i-οστός πίνακας περιγράφει τον χώρο στο ύψος i. Η πάνω αριστερή γωνία έχει τις συντεταγμένες (1, 1, i). Η γραμμή και η στήλη του πίνακα αντιστοιχούν στις συντεταγμένες x και y, αντίστοιχα.

Το "0" υποδηλώνει ένα μοναδιαίο κύβο στον οποίο δεν υπάρχουν σύννεφα και το "1" υποδηλώνει ένα μοναδιαίο κύβο στον οποίο υπάρχουν σύννεφα.

Η θέση εκκίνησης και τερματισμού του Zrakoplović δεν θα είναι σύννεφο.

Έξοδος

Στην πρώτη και μοναδική γραμμή, εκτυπώστε τον μικρότερο αριθμό από φτερουγίσματα που πρέπει να κάνει ο Zrakoplović για να φτάσει στην επιθυμητή θέση. Εάν ο Zrakoplović δεν μπορεί να φτάσει στην επιθυμητή θέση, εκτυπώστε "-1".

Βαθμολογία
 Υποπρόβλημα    Βαθμοί   Περιορισμοί
1 7 n = 2
2 16 Δεν υπάρχουν σύννεφα
3 22 Όλες οι θέσεις με συντεταγμένες z μεγαλύτερες από 1 θα είναι σύννεφα.
4 25 Κανένας επιπλέον περιορισμός
Παραδείγματα

input

2
1 1 1
1 1 2
00
10
01
00

output

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

Ο Zrakoplović μπορεί να φτάσει στην επιθυμητή θέση με ένα φτερούγισμα κινούμενος στην κατεύθυνση του άξονα z κατά απόσταση ενός μοναδιαίου κύβου.


input

3
2 3 1
1 1 1
000
010
000
111
111
111
111
111
111

output

3

input

3
2 1 1
3 2 2
000
010
110
010
001
001
101
110
000

output

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

Ο Zrakoplović μπορεί να φτάσει στην επιθυμητή θέση με τρία φτερουγίσματα μετακινούμενος πρώτα στη θέση (2, 1, 2), στη συνέχεια στη θέση (2, 2, 2) και τέλος στη θέση (3, 2, 2).


Comments

There are no comments at the moment.