시간 구간 다중 업데이트 다중 합
시간 제한1초메모리 제한512 MB
하루의 1초 단위 구간에 대해 값을 1씩 더하거나 구간의 합을 출력하는 쿼리를 순서대로 처리합니다.
문제
시간 구간에 대한 질의를 처리한다. 전체 시간 구간은 [00:00:00,23:59:59]이다. h:m:s는 h시 m분 s초를 뜻한다. 전체 시간 구간은 길이가 1초인 구간들로 나뉘어 있다. 즉 [00:00:00,00:00:01], [00:00:01,00:00:02], ..., [23:59:58,23:59:59] 구간으로 나뉘어 있다.
시간 구간에 대한 n개의 질의가 저장된 배열 A가 주어진다. 각 질의의 첫 번째 숫자가 유형을 나타낸다. 1은 유형 1, 2는 유형 2이다.
- 1 h1:m1:s1 h2:m2:s2: 시간 구간 [h1:m1:s1,h2:m2:s2]에 1을 더한다.
- 2 h1:m1:s1 h2:m2:s2: 시간 구간 [h1:m1:s1,h2:m2:s2]의 값을 출력한다.
유형 1의 질의는 시간 구간 [...]에 포함된 길이가 1초인 모든 구간에 1을 더한다. 예를 들어 [00:00:02,01:02:03]에 1을 더하면 [00:00:02,00:00:03], [00:00:03,00:00:04], ..., [01:02:02,01:02:03] 구간에 1이 더해진다.
유형 2의 질의는 주어진 구간에 포함된 길이가 1초인 모든 구간의 합을 출력한다. 예를 들어 [00:00:02,01:02:03]의 값을 출력하면 [00:00:02,00:00:03], [00:00:03,00:00:04], ..., [01:02:02,01:02:03] 구간의 합이 출력된다.
전체 시간 구간 [00:00:00,23:59:59]의 초깃값은 0이다. 배열 A의 첫 번째 질의부터 n번째 질의까지 순서대로 처리하면서 유형 2의 결과를 출력한다. 배열 A에는 모든 유형 1의 질의가 유형 2의 질의보다 앞부분에 저장되어 있다.
입력
첫 번째 줄에 n이 주어진다.
두 번째 줄부터 n개의 줄에 배열 A에 저장된 n개의 질의가 한 줄에 하나씩, 첫 번째 질의부터 n번째 질의까지 순서대로 주어진다.
출력
유형 2의 질의 결과를 순서대로 한 줄에 하나씩 출력한다.
제한
- 2 ≤ n ≤ 100,000
- 00 ≤ h1, h2 ≤ 23
- 00 ≤ m1, s1, m2, s2 ≤ 59
- 00:00:00 ≤ h1:m1:s1 < h2:m2:s2 ≤ 23:59:59
- h1, m1, s1, h2, m2, s2는 모두 길이가 2인 문자열이다.
- 배열 A에는 모든 유형 1의 질의가 유형 2의 질의보다 앞부분에 저장되어 있다.
- 배열 A에는 유형 2의 질의가 1개 이상 저장되어 있다.