번지수 숫자 세기
면접 대비시간 제한1초메모리 제한128 MB
L부터 H까지의 집 번호에 나타나는 숫자 0부터 9의 개수를 세되, 주어진 결번 구간은 제외합니다.
문제
금속 숫자를 만드는 회사가 집 앞에 붙여 번지수를 표시하는 숫자들을 생산한다. 새 거리에 집들이 지어지면, 이 회사는 거리 전체에 필요한 숫자를 한 번에 공급해 달라는 주문을 자주 받는다. 낭비를 막기 위해, 회사는 주문을 채우는 데 각 숫자(0~9)가 몇 개씩 필요한지 정확히 계산할 수 있어야 한다.
건설사는 새 거리에 사용되는 번지수의 범위를 회사에 알려 준다. 때때로 집들 사이에 빈 구간이 있을 수 있는데(예를 들어 학교나 운동장이 있는 경우), 그런 곳의 번호는 필요하지 않다.
입력
입력은 여러 개의 시나리오로 이루어진다. 각 시나리오는 세 정수 , , 로 시작한다. 세 값이 모두 인 줄에서 입력이 끝나며, 그 마지막 줄은 처리하지 않는다.
은 거리에서 가장 낮은 번지수, 는 가장 높은 번지수이다(). 는 고려해야 할 빈 구간의 개수이다().
가 이면 회사는 부터 까지 모든 집(양 끝 포함)의 번호를 공급해야 한다. 그렇지 않으면 같은 줄에서 , 다음에 개의 구간 정보가 이어진다. 각 구간은 두 정수 , 과 문자 A, E, O 중 하나로 이루어지며, 모두 하나의 공백으로 구분된다. 은 빠진 집 블록의 가장 낮은 번호, 은 가장 높은 번호이다. 이 과 같으면 집 한 채만 빠졌음을 뜻한다(, ). 문자 A는 그 범위의 모든 집이 빠졌음을, E는 짝수 번호의 집만 빠졌음을, O는 홀수 번호의 집만 빠졌음을 뜻한다. 빈 구간끼리는 서로 겹치지 않으므로, 어떤 집도 두 번 이상 제외되지 않는다.
출력
각 시나리오마다 한 줄을 출력한다. 그 줄은 하나의 공백으로 구분된 10개의 정수로 이루어진다. 이 정수들은 주문을 채우는 데 필요한 각 숫자의 개수로, 숫자 (가장 왼쪽)부터 숫자 (가장 오른쪽)까지 순서대로 나타낸다. 어떤 숫자가 필요하지 않으면 그 자리에 을 출력한다.