Learning by Example
농부 존은 새로 구입할 암소의 점무늬(Spotted) 여부를 기존 소들의 데이터를 바탕으로 예측하려고 합니다.
현재 농장에는 \(N\)마리의 소가 있으며, 각 소의 몸무게 \(W\)와 점무늬 보유 여부('S': 점무늬 있음, 'NS': 점무늬 없음)가 알려져 있습니다. (\(1 \le N \le 50,000\))
새로 들어올 소의 몸무게가 \(W\)일 때, 그 소의 점무늬 여부는 몸무게가 가장 가까운 기존 소의 점무늬 여부를 따릅니다.
만약 몸무게 차이가 가장 가까운 기존 소가 두 마리(한 마리는 점무늬 있음, 다른 한 마리는 점무늬 없음)일 경우, 우선적으로 점무늬가 있는 것으로 판단합니다.
존은 몸무게가 \(A\) 이상 \(B\) 이하인 정수 몸무게 범위 \([A, B]\) 중에서 새 소를 새로 구입하려고 합니다. (\(1 \le A \le B \le 1,000,000,000\))
이 범위 \([A, B]\) 내의 정수 몸무게 중, 새 소가 점무늬를 가지게 되는 몸무게의 개수를 구하는 프로그램을 작성하세요.
입력
첫째 줄에 기존 소의 마릿수 \(N\)과 몸무게 범위 \(A, B\)가 공백으로 구분되어 주어진다. (\(1 \le N \le 50,000\), \(1 \le A \le B \le 1,000,000,000\))
둘째 줄부터 \(N\)개의 줄에 걸쳐 각 소의 점무늬 여부 문자열('S' 또는 'NS')과 몸무게 \(W\)가 공백으로 구분되어 주어진다. (\(1 \le W \le 1,000,000,000\))
출력
범위 \([A, B]\) 내의 정수 몸무게 중 점무늬를 갖게 되는 몸무게의 총 개수를 출력한다.
예제 입력 1
3 1 10
S 10
NS 4
S 1
예제 출력 1
7
출처
USACO 2014 December Contest, Bronze
코멘트