동시 접속자 수
시간 제한2초메모리 제한256 MB
로그인, 로그아웃, 재시작과 세션 만료를 순서대로 처리해 등장한 사용자와 동시 접속자 최댓값을 구합니다.
문제
웹 서버를 관리하고 있다. 회사는 동시 접속 라이선스를 개 사 두어서 사용자 명이 한꺼번에 로그인해 있을 수 있다. 회사가 모든 항목에서 비용을 줄이는 중이라, 상사는 라이선스 개가 정말 필요한지 알고 싶어 한다.
서버는 세 가지 사건을 로그에 남긴다.
- 사용자가 접속해 세션이 시작된 시각
- 사용자가 접속을 끊어 세션이 사라진 시각
- 서버가 재시작된 시각
사용자가 항상 로그아웃하지는 않는다. 브라우저를 그냥 닫기도 한다. 그래서 세션에는 분짜리 제한 시간이 있다. 시각 에 시작한 세션은 시각 에 끝나고, 그 사용자는 에는 이미 접속이 끊긴 상태다. 이 자동 종료는 로그에 남지 않는다.
세션이 아직 열려 있는 사용자가 LOG_IN을 다시 기록하면, 세션은 그 시각부터 다시 시작해 분 뒤에 끝난다.
서버가 재시작되면 그 시각에 모든 사용자의 접속이 끊기고 세션이 전부 사라진다.
하루치 서버 로그와 세션 제한 시간이 주어진다. 로그에 나타나는 서로 다른 사용자가 몇 명인지, 그리고 같은 시각에 로그인해 있던 사용자 수의 최댓값이 얼마인지 구하라.
입력
첫째 줄에 처리할 로그의 개수 가 주어진다 ().
각 로그의 첫째 줄에는 기록의 개수 와 세션 제한 시간 가 공백으로 구분되어 주어진다 (). 다음 개 줄에 기록이 한 줄에 하나씩 주어지며, 형식은 둘 중 하나다.
TIME SERVER RESTART
TIME USER USER_NAME USER_ACTION
TIME은 24시간제 HH:MM 형식이다. USER_NAME은 길이가 1 이상 16 이하인 영어 소문자 문자열이고, 같은 이름은 언제나 같은 사용자를 가리킨다. USER_ACTION은 LOG_IN 또는 LOG_OUT이다. 기록은 시각이 증가하는 순서로 주어지고, 한 로그 안의 시각은 모두 다르다. 로그에는 모순이 없다. LOG_OUT은 그 시각에 세션이 열려 있는 사용자에게만 나타난다. 명이 모두 로그에 등장하지는 않는다.
출력
각 로그마다 로그에 나타나는 서로 다른 사용자의 수와 같은 시각에 로그인해 있던 사용자 수의 최댓값을 공백 하나로 구분해 한 줄에 출력한다.