Tourney
Ο Don Cherry προσλήφθηκε για να εκτελεί -ωρη κάλυψη μιας σειράς τουρνουά αποσυναρμολόγησης επίπλων μεμονωμένων αποκλεισμών, τύπου bracket. Κάθε διαγωνιζόμενος έχει μια επίπεδο ικανότητας αποσυναρμολόγησης επίπλων, έναν ακέραιο αριθμό μεταξύ του και το . Σε κάθε αγώνα head-to-head, ο διαγωνιζόμενος με το μεγαλύτερο επίπεδο δεξιοτήτων κερδίζει και προχωρά, ενώ ο άλλος αποβάλλεται από το τουρνουά. Είναι εγγυημένο ότι, ανά πάσα στιγμή, τα επίπεδα δεξιοτήτων όλων των διαγωνιζομένων είναι διαφορετικά, επομένως δεν υπάρχουν ισοπαλίες.
Υπάρχουν () θέσεις διαγωνιζομένων στο δέντρο του τουρνουά, αριθμημένες με από αριστερά προς τα δεξιά. Στον πρώτο γύρο, οι διαγωνιζόμενοι και αντιμετωπίζει ο ένας τον άλλον σε έναν αγώνα αποσυναρμολόγησης επίπλων, όπως και οι διαγωνιζόμενοι και κ.λπ. Σε κάθε επόμενο γύρο, οι νικητές των δύο πρώτων αγώνων από τον προηγούμενο γύρο διαγωνίζονται, όπως και οι νικητές των δύο επόμενων, κ.λπ. Μετά από γύρους, ένας μόνο νικητής παραμένει. Για παράδειγμα, όταν , το δέντρο του τουρνουά μοιάζει με αυτό:
Όπου το αντιπροσωπεύει τον νικητή του αγώνα μεταξύ των διαγωνιζόμενων και , το αντιπροσωπεύει τον νικητή του αγώνα μεταξύ των διαγωνιζόμενων και και το αντιπροσωπεύει τον νικητή του αγώνα μεταξύ του και του . Ο νικητής αυτού του τουρνουά είναι ο .
Λόγω των συμβολαίων με χορηγούς, κάποιοι διαγωνιζόμενοι θα αντικατασταθούν με τον χρόνο. Αφού έρθει κάποιο νέο άτομο, γίνεται ένα νέο τουρνουά.
Για να βοηθήσετε τον Don Cherry, πρέπει να γράψετε ένα πρόγραμμα για να υπολογίσετε ορισμένες στατιστικές των τουρνουά σε διάφορες χρονικές στιγμές, δεδομένης μίας ακολουθίας από () εντολές - δείτε τη μορφή της εισόδου παρακάτω.
Είσοδος
Η πρώτη γραμμή της εισόδου περιέχει δύο ακέραιους, () και (), χωρισμένους με ένα κενό.
Οι επόμενες γραμμές, για από το έως το , καθεμία περιέχει έναν ακέραιο , που υποδυκνύουν το επίπεδο δεξιότητας του αρχικού διαγωνιζόμενου στη θέση στο δέντρο του τουρνουά.
Καθεμία από τις ακόλουθες γραμμές θα είναι μία εντολή με μια από τρεις μορφές:
" " σημαίνει ότι ο διαγωνιζόμενος στη θέση αφαιρείται και αντικαθίσταται με έναν νέο με επίπεδο δεξιότητας . Ένα νέο τουρνουά ξεκινά έπειτα.
"" σημαίνει ότι το πρόγραμμά σας θα πρέπει να καθορίσει ποιός κέρδισε στο τρέχων τουρνουά. Εκτυπώστε τη θέση (μεταξύ και ) αυτού του διαγωνιζόμενου.
" " σημαίνει ότι το πρόγραμμά σας θα πρέπει να εκτυπώσει τον αριθμό των γύρων που ο διαγωνιζόμενο στη θέση κέρδισε στο τρέχων τουρνουά.
Έξοδος
Για κάθε "" ή " " εντολή στην είσοδο, εκτυπώστε τον αντίστοιχο ακέραιο σε μία γραμμή μόνο του.
Παράδειγμα
input
2 8
30
20
10
40
S 1
W
R 4 9
S 4
W
R 2 35
S 2
W
output
1
4
0
1
2
2
Επεξήγηση του παραδείγματος
Τα αποτελέσματα του πρώτου τουρνουά είναι τα εξής:
Όπως φαίνεται, ο διαγωνιζόμενος κερδίζει τον αγώνα και ο διαγωνιζόμενος κερδίζει το τουρνουά. Μετά από αυτό, ο διαγωνιζόμενος αντικαθίσταται από ένα καινούριο διαγωνιζόμενο με επίπεδο δεξιότητας . Όπως φαίνεται παρακάτω, αυτό προκαλεί ένα διαφορετικό αποτέλεσμα για το τουρνουά που γίνεται μετά την τρίτη εντολή:
Τέλος, η κατάσταση του δέντρου του τουρνουά μετά την επόμενη αντικατάσταση διαγωνιζόμενου (που προκάλεσε η έκτη εντολή) είναι:
Comments