CCC-15 (2015) - J4 (Wait Time)

View as PDF

Submit solution

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

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

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

Η συσκευή σας καταγράφει κάθε ληφθέν και αποσταλθέν μήνυμα με τη σειρά χρησιμοποιώντας τα εξής δύο είδη καταχωρήσεων:

  • R\;X υποδεικνύει ότι ένα μήνυμα ελήφθη από έναν φίλο με τον αριθμό X,
  • S\;X υποδεικνύει ότι ένα μήνυμα στάλθηκε σε έναν φίλο με αριθμό X.

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

  • καταγράφεται μια καταχώρηση W\;X μεταξύ τους που υποδεικνύει ότι απέχουν X δευτερόλεπτα μεταξύ τους, ή
  • δεν υπάρχει καμία καταχώρηση ανάμεσά τους και απέχουν μεταξύ τους ένα δευτερόλεπτο.

Ακολουθούνται πάντα διάφοροι κανόνες για την επικοινωνία αυτή:

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

Ο χρόνος αναμονής για ένα μήνυμα είναι ο χρόνος που μεσολαβεί από τη στιγμή που το λαμβάνετε μέχρι τη στιγμή που απαντάτε σε αυτό. Αν ένας φίλος X έλαβε απάντηση σε κάθε μήνυμα που έστειλε, ο συνολικός χρόνος αναμονής για τον φίλο X είναι το άθροισμα όλων των χρόνων αναμονής για όλα τα μηνύματα από τον φίλο X. Διαφορετικά, ο συνολικός χρόνος αναμονής για τον φίλο X είναι -1.

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

Είσοδος

Η είσοδος αποτελείται από έναν ακέραιο αριθμό M\;(1 \le M \le 20), ακολουθούμενο από M γραμμές, όπου κάθε γραμμή περιέχει έναν χαρακτήρα (W, R ή S), ακολουθούμενο από ένα κενό, ακολουθούμενο από έναν ακέραιο αριθμό X\;(1 \le X \le 100). Αυτές οι M γραμμές είναι οι καταχωρίσεις που περιγράφονται παραπάνω (στη σειρά).

Έξοδος

Εξάγετε μία γραμμή για κάθε φίλο που έστειλε μήνυμα της μορφής X\;T όπου X είναι ένας αριθμός φίλου και T είναι ο συνολικός χρόνος αναμονής για τον φίλο X. Οι γραμμές είναι κατά αύξουσα σειρά του αριθμού των φίλων.

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

input

5
R 2
R 3
W 5
S 2
S 3

output

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

Ο φίλος 2 στέλνει ένα μήνυμα σε χρόνο 0 και ο φίλος 3 στέλνει ένα μήνυμα σε χρόνο 1. Ο φίλος 2 λαμβάνει απάντηση σε χρόνο 6 και ο φίλος 3 λαμβάνει απάντηση σε χρόνο 7.


input

14
R 12
W 2
R 23
W 3
R 45
S 45
R 45
S 23
R 23
W 2
S 23
R 34
S 12
S 34

output

12 13
23 8
34 2
45 -1
Επεξήγηση του δεύτερου παραδείγματος:

Για τον φίλο 12, ένα μήνυμα λαμβάνεται σε χρόνο 0 και απαντάται σε χρόνο 13. Για τον φίλο 23, ανταλλάσσονται δύο μηνύματα, με το πρώτο μήνυμα να έχει χρόνο αναμονής 6 δευτερόλεπτα και το δεύτερο μήνυμα να έχει χρόνο αναμονής 2 δευτερόλεπτα. Για τον φίλο 34, ένα μήνυμα λαμβάνεται σε χρόνο 10 και απαντάται σε χρόνο 12. Ο φίλος 45 στέλνει ένα μήνυμα το οποίο δεν απαντάται ποτέ.


Comments

There are no comments at the moment.