KATTIS - Boxes

View as PDF

Submit solution

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

Author:
Problem type
Allowed languages
C, C++, Java, Python
Boxes

Υπάρχουν N κουτιά, που φέρουν έναν δείκτη από το 1 έως το N. Κάθε κουτί μπορεί (ή μπορεί και όχι) να τοποθετηθεί μέσα σε άλλα κουτιά. Αυτά τα κουτιά σχηματίζουν μαζί μια δομή δέντρου (ή μια δομή δάσους, για να είμαστε ακριβείς).

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

Θεωρήστε, για παράδειγμα, τα παρακάτω πέντε κουτιά.

kattisboxes-figure.svg

Σχήμα 1: Παράδειγμα Εισόδου

Αν το ερώτημα αφορά τη λίστα "1", τότε η σωστή απάντηση είναι "5", επειδή το κουτί 1 περιέχει όλα τα κουτιά.

Αν το ερώτημα αφορά τη λίστα "4 5", τότε η σωστή απάντηση είναι "2", καθώς τα κουτιά 4 και 5 περιέχουν τον εαυτό τους και τίποτα άλλο.

Αν το ερώτημα αφορά τη λίστα "3 4", τότε η σωστή απάντηση είναι "2".

Αν το ερώτημα αφορά τη λίστα "2 3 4", τότε η σωστή απάντηση είναι "4", καθώς το κουτί 2 περιέχει επίσης το κουτί 5.

Αν το ερώτημα αφορά τη λίστα "2", τότε η σωστή απάντηση είναι "3", επειδή το κουτί 2 περιέχει τον εαυτό του και άλλα δύο κουτιά.

Είσοδος

Η πρώτη γραμμή θα περιέχει έναν ακέραιο N\;(1 \le N \le 200.000), τον αριθμό των κουτιών.

Η δεύτερη γραμμή θα περιέχει N ακέραιους. Ο i-οστός ακέραιος θα είναι είτε ο δείκτης του κουτιού που περιέχει το i-οστό κουτί, ή 0 αν το i-οστό κουτί δεν περιέχεται σε κανένα άλλο κουτί.

Η τρίτη γραμμή θα περιέχει έναν ακέραιο Q\;(1 \le Q \le 100.000), τον αριθμό των ερωτημάτων. Οι ακόλουθες Q γραμμές θα έχουν την εξής μορφή: σε κάθε γραμμή, ο πρώτος ακέραιος, M\;( 1 \le M \le 20) αντιστοιχεί στο μήκος της λίστας των κουτιών σε αυτό το ερώτημα και έπειτα θα ακολουθούν M ακέραιοι, οι δείκτες των κουτιών.

Έξοδος

Για κάθε ερώτημα εξάγετε μία γραμμή που να περιέχει έναν ακέραιο, τον συνολικό αριθμό των κουτιών.

Παράδειγμα

input

5
0 1 1 2 2
5
1 1
2 4 5
2 3 4
3 2 3 4
1 2

output

5
2
2
4
3

Comments

There are no comments at the moment.