CCC-07 (2007) - S3 (Friends)

View as PDF

Submit solution

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

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

Σε ένα συγκεκριμένο σχολείο, έχει διαπιστωθεί ότι οι μαθητές αφιερώνουν πολύ χρόνο στο διάβασμα και όχι αρκετό χρόνο στην κοινωνικοποίησή τους. Για να αντιμετωπιστεί αυτή η κατάσταση, αποφασίστηκε να ανατεθεί σε κάθε μαθητή ένας φίλος. Μια φιλία είναι μονομερής. Δηλαδή, αν η Janet οριστεί ως φίλη της Sarah, η Janet πρέπει να είναι φιλική προς τη Sarah, αλλά η Sarah δεν είναι υποχρεωμένη να ανταποκριθεί.

Η ανάθεση των φίλων γίνεται μέσω υπολογιστή χρησιμοποιώντας τους αριθμούς των μαθητών. Σε κάθε μαθητή ανατίθεται ακριβώς ένας φίλος. Μερικές φορές, προκύπτει ένας "κύκλος φίλων". Για παράδειγμα, αν στον Marc ανατεθεί ο Fred, στον Fred ανατεθεί η Lori, στη Lori ανατεθεί η Jean και στη Jean ανατεθεί ο Marc, έχουμε έναν κύκλο 4 φίλων που περιλαμβάνει τον Marc, τον Fred, τη Lori και την Jean. Μπορούμε να πούμε ότι στον κύκλο, ο Marc έχει διαχωρισμό 0 από τον Fred, 1 από τη Lori, 2 από την Jean και 3 από τον Marc.

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

Είσοδος

Η είσοδος ξεκινά με έναν ακέραιο αριθμό n\;(2 \le n \le 9999), τον αριθμό των μαθητών της τάξης, σε ξεχωριστή γραμμή. Οι επόμενες n γραμμές περιέχουν την ανάθεση των φίλων από τον υπολογιστή. Μια ανάθεση είναι της μορφής x\;y (όπου 1 \le x \le 9999, 1 \le y \le 9999, x \neq y). Για παράδειγμα, 1234\;8765 είναι μια πιθανή ανάθεση φιλίας και σημαίνει ότι ο μαθητής 1234 πρέπει να είναι φίλος με τον μαθητή 8765.

Μετά τις αναθέσεις φίλων, ακολουθεί μια σειρά γραμμών που περιέχουν η καθεμιά δύο αριθμούς μαθητών, χωρισμένους με ένα κενό διάστημα. Αυτές οι γραμμές περιέχουν τα ζεύγη των μαθητών που θα προσδιορίσετε αν ανήκουν στον ίδιο κύκλο φίλων και, αν ναι, τον διαχωρισμό τους. Η τελευταία γραμμή της εισόδου αναγνωρίζεται από τη χρήση του 0\;0 για την ανάθεση φιλίας.

Έξοδος

Για κάθε περίπτωση, πρέπει να εξάγετε, σε μια ξεχωριστή γραμμή, τη λέξη Yes ή τη λέξη No, ανάλογα με το αν ανήκουν στον ίδιο κύκλο φίλων. Εάν η απάντηση είναι Yes, τότε στην ίδια γραμμή η λέξη Yes της εξόδου, θα πρέπει να ακολουθείται από ένα κενό διάστημα και στη συνέχεια από έναν ακέραιο αριθμό που θα αντιστοιχεί στον αριθμό διαχωρισμού τους.

Παράδειγμα

input

6
1 2
2 3
3 1
10 11
100 10
11 100
1 100
2 3
0 0

output

No
Yes 0

Comments

There are no comments at the moment.