range
시간 제한0.5초메모리 제한1024 MB
주어진 Python range 호출을 읽고, 같은 수열을 만드는 range 호출 중 사전순으로 가장 앞서는 문자열을 출력합니다.
문제
SNUPC의 지원 언어인 Python에는 range라는 class가 있다. 이 class는 유한 등차수열을 표현하려고 만들어졌다.
유한 등차수열 은 정수 s, e, d(d 0)로 특징지을 수 있다. 초항이 s이고 공차가 d인 등차수열 의 원소 x 중 를 만족하는 것을 모두 모은 유한 부분수열이다. 예를 들어 s = 0, e = 5, d = 1이면 [0, 1, 2, 3, 4]이다.
유한 등차수열의 길이는 그 수열에 속한 수의 집합의 크기이다. 위 예에서 길이는 5이다. 두 유한 등차수열 와 는 길이 L이 같고, 모든 정수 0 i L에 대해 이면 같다.
range는 세 가지 문법을 지원한다.
range(a)는 s = 0, e =a, d = 1인 수열을 나타낸다.range(a,b)는 s =a, e =b, d = 1인 수열을 나타낸다.range(a,b,c)는 s =a, e =b, d =c인 수열을 나타낸다. 이때c는 0이 아니어야 한다.
Python은 range끼리 같은지 비교할 때 각 range가 나타내는 수열로 비교한다. 예를 들어 range(5)와 range(0,5)는 모두 [0, 1, 2, 3, 4]를 나타내므로 같다. 수열의 길이는 0일 수도 있다. range(5,9,-3)과 range(7,2)는 모두 길이가 0이므로 같다.
당신이 할 일은 Python의 range를 하나 받아, 그와 같다고 Python이 판단하는 range를 출력하는 것이다.
입력
첫 줄에 range가 주어진다. 문자열의 각 문자는 (),-0123456789aegnr 중 하나이다. 괄호 안의 a, b, c는 절댓값이 보다 작은 정수로 바뀌어 주어진다.
정수 n을 나타내는 문자열은 다음과 같다. n이 0보다 크면 10진법 숫자로만 이루어지며 첫 글자는 0이 아니다. n이 0이면 항상 0이다. n이 0보다 작으면 첫 글자는 -이고, 나머지 문자열은 -n을 나타내는 문자열이다.
range의 인자는 하나, 둘, 셋 모두 올 수 있다.
출력
첫 줄에 입력과 같다고 Python이 판단하는 range를 나타내는 문자열을 출력한다. 정수의 표현은 입력 조건과 같아야 하며, 각 수의 절댓값이 반드시 보다 작을 필요는 없다.
가능한 문자열이 여럿이면 사전 순으로 가장 작은 문자열을 출력한다. 이때 각 문자는 ASCII 순서, 즉 (),-0123456789aegnr 순서(앞에 있을수록 작음)로 비교한다.