Unfriend
Ο Mark προσκάλεσε μερικά άτομα να ενταχθούν στο κοινωνικό του δίκτυο. Κάποιοι από αυτούς προσκάλεσαν νέα άτομα, τα οποία προσκάλεσαν με τη σειρά τους νέα άτομα, και ούτω καθεξής. Τώρα υπάρχουν άτομα στο δίκτυο, αριθμημένα από το έως το . Ο Mark αποφάσισε να αφαιρέσει ορισμένα άτομα και άλλα να τα κρατήσει. Υπάρχει ένας περιορισμός: όταν αφαιρεί ένα άτομο, θα αφαιρέσει επίσης τα άτομα που αυτό προσκάλεσε, και τα άτομα που αυτά προσκάλεσαν, και ούτω καθεξής. Ο Mark δεν θα αφαιρέσει ποτέ τον εαυτό του, και δεν επιτρέπουμε τα ίδια άτομα να προσκαλούνται από περισσότερα από ένα. Ο Mark έχει επίσης τη δυνατότητα να αποφασίσει να μην αφαιρέσει κανέναν.
Πόσα διαφορετικά σύνολα ατόμων μπορούν να αφαιρεθούν;
Είσοδος
Η πρώτη γραμμή εισόδου θα περιέχει έναν ακέραιο αριθμό , τον αριθμό των ατόμων στο δίκτυο. Ακολουθούν γραμμές που μας λένε ποιος προσκάλεσε κάθε άτομο. Για την ακρίβεια, η γραμμή σε αυτό το σύνολο θα περιέχει έναν ακέραιο αριθμό (με ), ο οποίος υποδηλώνει ότι το άτομο είναι το άτομο που προσκάλεσε το άτομο i. Το άτομο είναι ο Mark.
Έξοδος
Εξάγετε έναν ακέραιο αριθμό, τον αριθμό των πιθανών συνόλων ατόμων που μπορούν να αφαιρεθούν.
Παραδείγματα
input
3
3
3
output
4
Επεξήγηση του πρώτου παραδείγματος:
Ο πρώτος αριθμός της εισόδου υποδεικνύει ότι υπάρχουν τρία άτομα στο δίκτυο. Η επόμενη γραμμή μας λέει ότι το άτομο προσκλήθηκε από τον Mark, ενώ η τελευταία γραμμή μας λέει ότι το άτομο προσκλήθηκε επίσης από τον Mark. Τα σύνολα των ατόμων που μπορούν να αφαιρεθούν είναι , , , .
input
4
3
4
4
output
6
Επεξήγηση του δεύτερου παραδείγματος:
Υπάρχουν 4 άτομα στο δίκτυο. Πσρακάτω είναι ένας πίνακας με το ποιος προσκάλεσε ποιον:
Person inviting | Invited |
none | |
none | |
Τα πιθανά σύνολα είναι , , , , και . Παρατηρήστε ότι τα σύνολα και δεν είναι δυνατά, αφού όταν αφαιρείτε το , πρέπει να αφαιρέσετε και το .
Comments