대기 시간
면접 대비시간 제한1초메모리 제한256 MB
로그에서 메시지 시각을 복원해 친구별 답장 대기 시간 합계를 구하고 답장이 없는 메시지가 있으면 -1을 출력합니다.
문제
친구들과 문자 메시지를 주고받는다. 받는 메시지가 워낙 많아서, 친구들이 답장을 얼마나 오래 기다렸는지 재려고 한다.
메시지 기기는 받은 메시지와 보낸 메시지를 순서대로 다음 두 가지 기록으로 남긴다.
R X: 번호가 인 친구에게서 메시지를 받았다.S X: 번호가 인 친구에게 메시지를 보냈다.
메시지는 즉시 오간다. 위 기록이 연달아 나오는 두 항목 사이에는 둘 중 하나가 성립한다.
- 사이에
W X기록이 하나 있으면 두 항목은 초 간격으로 일어난다. - 사이에 아무 기록도 없으면 두 항목은 1초 간격으로 일어난다.
메시지 예절 규칙은 항상 지켜진다.
- 보내는 메시지는 모두 이미 받은 메시지의 답장이다.
- 한 친구가 보낸 한 메시지에는 답장을 최대 한 번 보낸다.
- 친구는 자신이 보낸 메시지에 답장을 받기 전에는 다음 메시지를 보내지 않는다.
한 메시지의 대기 시간은 그 메시지를 받은 시각부터 답장을 보낸 시각까지 흐른 시간이다. 친구 가 보낸 메시지가 모두 답장을 받았다면, 친구 의 총 대기 시간은 친구 가 보낸 각 메시지의 대기 시간을 모두 더한 값이다. 답장을 받지 못한 메시지가 하나라도 있으면 친구 의 총 대기 시간은 -1이다.
각 친구의 총 대기 시간을 구하라.
입력
첫째 줄에 정수 ()이 주어진다. 이어지는 개의 줄에는 각각 문자 하나(W, R, S 중 하나)와 공백 하나, 정수 ()가 주어진다. 이 개의 줄이 위에서 설명한 기록이며, 일어난 순서대로 주어진다.
출력
메시지를 보낸 친구마다 한 줄씩 X T 형식으로 출력한다. 는 친구 번호이고, 는 그 친구의 총 대기 시간이다. 친구 번호가 증가하는 순서로 출력한다.
힌트
첫 번째 예제에서 친구 2는 0초에, 친구 3은 1초에 메시지를 보낸다. 친구 2는 6초에, 친구 3은 7초에 답장을 받는다.
두 번째 예제에서 친구 12의 메시지는 0초에 도착하고 13초에 답장을 받는다. 친구 23은 메시지를 두 번 보내며, 첫 메시지의 대기 시간은 6초, 두 번째 메시지의 대기 시간은 2초다. 친구 34의 메시지는 12초에 도착하고 14초에 답장을 받는다. 친구 45가 마지막에 보낸 메시지는 답장을 받지 못한다.