COCI-16 (2016) - Γύρος #1 - 2 (Jetpack)

View as PDF

Submit solution

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

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

Ο μικρός Μίρκο πήρε νέο κινητό για τα γενέθλιά του! Όπως όλα τα παιδιά στις μέρες μας, κατέβασε γρήγορα όλα τα δημοφιλή παιχνίδια για κινητά, συμπεριλαμβανομένου του Jetpack Joyride.

Στο παιχνίδι, ο πρωταγωνιστής Barry τρέχει σε ένα πίνακα που αποτελείται από 10 σειρές και N στήλες τετράγωνων ίσου μεγέθους. Αρχικά, το Barry βρίσκεται στο κέντρο του τετραγώνου στην κάτω αριστερή γωνία. Ο Μπάρι τρέχει συνεχώς προς τα δεξιά με ταχύτητα ενός τετραγώνου ανά δευτερόλεπτο. Επιπλέον, πρέπει να αποφεύγει τα εμπόδια που βρίσκονται στο δρόμο του.

Όταν ο Mirko πατά την οθόνη του τηλεφώνου, ο Barry ενεργοποιεί το ειδικό του super-duper jetpack και ξεκινά την ανάβασή του με ταχύτητα ενός τετραγώνου ανά δευτερόλεπτο (ακόμα κινείται προς τα δεξιά, τώρα κινείται διαγώνια προς τα πάνω σε γωνία 45°, μέχρι να φτάσει στην οροφή, όπου θα συνεχίσει να κινείται προς τα δεξιά μέχρι ο Mirko να σταματήσει να πατά την οθόνη). Όταν ο Mirko σταματήσει να πατά την οθόνη του τηλεφώνου, ο Barry αρχίζει να πέφτει με ταχύτητα ενός τετραγώνου ανά δευτερόλεπτο (τώρα κινείται ξανά διαγώνια, αλλά αυτή τη φορά προς τα κάτω, μέχρι να φτάσει στο πάτωμα, όταν θα συνεχίσει να κινείται προς τα δεξιά). Ο Mirko μόλις άρχισε να παίζει το παιχνίδι πρόσφατα και ακόμα δεν είναι καλός σε αυτό. Είδε στο YouTube ότι κάποιος κατάφερε να ολοκληρώσει το παιχνίδι​ περνώντας όλες τις \(Ν\) στήλες, γι' αυτό σας ζητά τη βοήθειά σας. Θα σας δώσει τη διάταξη των πεδίων στο παιχνίδι και πρέπει να βγάζετε τις κινήσεις που πρέπει να παίξει για να κερδίσει.

Είσοδος

Η πρώτη γραμμή εισόδου περιέχει τον ακέραιο αριθμό N (1 \le N \le 10^5), το μέγεθος του πίνακα.
Κάθε μία από τις ακόλουθες 10 γραμμές περιέχει N χαρακτήρες «.» και «X», τη διάταξη του πίνακα στο παιχνίδι. Οι χαρακτήρες «X» υποδηλώνουν εμπόδια και «.» τετράγωνα που μπορούν να περπατηθούν.

Έξοδο

Η πρώτη γραμμή εξόδου πρέπει να περιέχει τον ακέραιο αριθμό ​P \((0 \le P \le 5⋅10^4)\), τον αριθμό των κινήσεων που πρέπει να κάνει ο Mirko.
Στις ακόλουθες P γραμμές, εξάγετε οποιαδήποτε σειρά από κινήσεις P, η καθεμία στη δική της γραμμή, έτσι ώστε να λύσει το πρόβλημα του Mirko από την εργασία.
Μια κίνηση καθορίζεται από δύο ακέραιους αριθμούς t_i και x_i, όπου το t_i υποδηλώνει το δευτερόλεπτο κατά το οποίο ο Mirko πρέπει να πατήσει την οθόνη και το x_i υποδηλώνει πόσο χρόνο χρειάζεται για να κρατήσει πατημένη την οθόνη.

Μια σειρά από κινήσεις πρέπει να ταξινομηθούν με χρονολογική σειρά. Με άλλα λόγια, πρέπει να ισχύει \(t_i + ​x_i \le t_i+1\).
Επίσης, καμία κίνηση δεν πρέπει να ξεκινά μετά το τέλος του παιχνιδιού, \(t_i < ​N\).

Τα δεδομένα εισόδου θα είναι τέτοια που σίγουρα θα υπάρχει λύση.

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

input

11
.....XX...X
....XX...XX
...XX...XX.
...........
....XXX....
...........
.....X.....
....XX...X.
...XX...XX.
...X...XX..

output

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

Το μονοπάτι που πρέπει να ακολουθήσει ο Mirko συμβολίζεται με «*»:

.....XX...X
....XX...XX
...XX...XX.
...........
....XXX....
.....*...*.
....*X*.*.*
...*XX.*.X.
..*XX...XX.
**.X...XX..

input

X..................X
.X................X.
..X..............X..
...X............X...
....X..........X....
.....X........X.....
......X......X......
.......X....X.......
........X..X........
.........XX.........

output

1
8 10

Comments

There are no comments at the moment.