CCC-18 (2018) - J5 (Choose your own path)

View as PDF

Submit solution

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

Author:
Problem types
Allowed languages
C, C++, Java, Pascal, Python
Choose your own path

Υπάρχει ένα είδος βιβλίων φαντασίας που ονομάζονται "Διάλεξε τη δική σου περιπέτεια". Αυτά τα βιβλία επιτρέπουν στον αναγνώστη να κάνει ο ίδιος επιλογές για τους χαρακτήρες, οι οποίες αλλάζουν την έκβαση της ιστορίας.

Για παράδειγμα, μετά την ανάγνωση της πρώτης σελίδας ενός βιβλίου, ο αναγνώστης μπορεί να κληθεί να επιλέξει κάτι, π.χ. "Σηκώνεις την πέτρα;", όπου αν ο αναγνώστης απαντήσει "ναι", κατευθύνεται να συνεχίσει την ανάγνωση στη σελίδα 47, και αν επιλέξει "όχι", κατευθύνεται να συνεχίσει την ανάγνωση στη σελίδα 18. Σε κάθε μία από αυτές τις σελίδες, υπάρχουν και άλλες επιλογές και αυτό συνεχίζεται σε όλη τη διάρκεια του βιβλίου. Ορισμένες σελίδες δεν έχουν καμία επιλογή, αυτές είναι οι σελίδες "τέλους" μιας εκδοχής της ιστορίας. Μπορεί να υπάρχουν πολλές τέτοιες σελίδες "τέλους" στο βιβλίο, μερικές από τις οποίες είναι καλές εκδοχές (π.χ. ο ήρωας βρίσκει θησαυρό) και άλλες που δεν είναι (π.χ. ο ήρωας βρίσκει ένα σάντουιτς που έχει απομείνει από το 2001).

Είστε εκδότης ενός τέτοιου βιβλίου, και θα πρέπει να εξετάσετε για το βιβλίο σας αυτά τα δύο χαρακτηριστικά :

  1. να διασφαλίσετε ότι κάθε σελίδα του προσεγγίζεται, στις εκδοχές ανάγνωσής του - διαφορετικά, δεν υπάρχει λόγος να πληρώσετε για να εκτυπώσετε μια σελίδα την οποία κανείς δεν μπορεί να διαβάσει
  2. να βρείτε τη συντομότερη εκδοχή ανάγνωσής του, ώστε οι αναγνώστες να γνώριζουν τον ελάχιστο χρόνο που χρειάζονται για να τελειώσουν μία εκδοχή της ιστορίας.

Δεδομένης μιας περιγραφής του βιβλίου, εξετάστε αυτά τα δύο χαρακτηριστικά.

Είσοδος

Η πρώτη γραμμή εισόδου περιέχει τον N\;(1 \le N \le 10000), τον αριθμό των σελίδων του βιβλίου. Κάθε από τις επόμενες N γραμμές περιέχει έναν ακέραιο αριθμό M_{i}\;(1 \le i \le N ; 0 \le M_{i} \le N ), ο οποίος είναι ο αριθμός των διαφορετικών επιλογών από τη σελίδα i, ακολουθούμενος από M_{i} ακέραιους αριθμούς χωρισμένους με κενό διάστημα στο εύρος από 1 έως N, που αντιστοιχούν σε κάθε μία από τις σελίδες στις οποίες πρέπει να μεταβείτε στη συνέχεια από τη σελίδα i. Θα ισχύει επίσης ότι M_{1} + M_{2} + ... + M_{N} θα είναι το πολύ 10000.

Εάν M_{i} = 0, τότε η σελίδα i είναι σελίδα λήξης (δηλαδή δεν υπάρχουν επιλογές από τη σελίδα αυτή). Θα υπάρχει τουλάχιστον μία σελίδα τέλους στο βιβλίο.

Σημειώστε ότι ξεκινάτε πάντα το βιβλίο από τη σελίδα 1.

Για 4 από τους 15 διαθέσιμους βαθμούς, N \le 100, M_{i} \le 10 για 1 \le i \le N.

Για επιπλέον 3 από τους 15 διαθέσιμους βαθμούς, είναι εγγυημένο ότι το βιβλίο δεν έχει κύκλους.

Για επιπλέον 4 από τους 15 διαθέσιμους βαθμούς, N \le 1000, M_{i} \le 25 για 1 \le i \le N.

Έξοδος

Η έξοδος θα αποτελείται από δύο γραμμές. Η πρώτη γραμμή θα περιέχει Y, αν όλες οι σελίδες είναι προσβάσιμες, και N εάν όχι. Η τελευταία γραμμή θα περιέχει έναν μη αρνητικό ακέραιο αριθμό K, ο οποίος αντιστοιχεί στη συντομότερη διαδρομή που μπορεί να ακολουθήσει ένας αναγνώστης κατά την ανάγνωση αυτού του βιβλίου. Θα υπάρχει πάντα ένα πεπερασμένο συντομότερο μονοπάτι.

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

input

3
2 2 3
0
0

output

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

Εφόσον ξεκινάμε από τη σελίδα 1 και μπορούμε να φτάσουμε τόσο στη σελίδα 2 όσο και στη σελίδα 3, όλες οι σελίδες είναι προσβάσιμες. Τα μόνα μονοπάτια στο βιβλίο είναι τα 1 \to 2 και 1 \to 3, καθένα από τα οποία έχει μήκος 2 σελίδες.


input

3
2 2 3
0
1 1

output

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

Κάθε σελίδα είναι προσβάσιμη, αφού από τη σελίδα 1 μπορούμε να φτάσουμε στις σελίδες 2 και 3. Η συντομότερη διαδρομή είναι το μονοπάτι ανάγνωσης 1 \to 2, το οποίο περιέχει δύο σελίδες.


Comments

There are no comments at the moment.