자동 울타리 게이트
시간 제한1초메모리 제한1024 MB
시각이 뒤섞인 N개의 게이트 명령을 시간순으로 실행했을 때, 게이트가 완전히 닫혀 있는 총 분을 구합니다.
문제
Farmer John(FJ)은 최근 두 밭 사이에 전자식 게이트를 설치했다. 그는 집의 컴퓨터로 게이트에 "10인치 올려라", "5인치 내려라"와 같은 명령을 보내 조작할 수 있다.
게이트는 최대한 높이 올라가 있으면 열린 상태이고, 지면 높이까지 내려가 있으면 닫힌 상태이다. FJ는 하루 동안 보낼 승강 명령의 순서를 신중하게 계획해 두었다. 그런데 번개를 동반한 폭풍 때문에 FJ 컴퓨터의 내용이 뒤섞였다. 이제 개()의 명령 목록이 순서 없이 나열되어 있다. 예를 들면 다음과 같다.
- 11:30pm 게이트를 5인치 올린다
- 10:05am 게이트를 3인치 내린다
- 12:03pm 게이트를 6인치 올린다
- 04:01am 게이트를 2인치 내린다
- ... 이하 동일
FJ는 같은 날 자정(12:00am)에 시작해 밤 11시 59분(11:59pm)에 끝나도록, 명령을 시간순으로 실행하려 했다. 그가 기억하기로는 원래 계획대로 명령을 실행했다면 게이트가 적어도 한 번은 완전히 닫혔을 것이다. 명령을 원래 계획한 순서대로 실행했다면 게이트가 완전히 닫혀 있었을 총 분 수를 구하라.
입력
- 1줄: 정수 하나
- 2줄부터 줄까지: 각 줄은 명령 하나이며, 공백으로 구분된 두 값을 가진다. 첫 값은 HH:MMxx 형식의 7자리 시각이다. HH는 시, MM은 분, xx는 am 또는 pm이다. 둘째 값은 게이트를 올릴 인치 수를 나타내는 정수이며, 음수이면 게이트를 내린다는 뜻이다.
출력
- 1줄: 하루 중 게이트가 완전히 닫혀 있던 분 수를 나타내는 정수 하나.
힌트
1:00am에 게이트를 5인치 올리고, 1:30am에 10인치 내리고, 1:30pm에 1인치 올린다. 게이트가 닫히는 시점이 반드시 있으므로, 닫혀 있던 구간은 1:30am부터 1:30pm까지다. 이 구간은 12시간(720분)이다.