2002년 가을학기 문제해결기법 - 문제 12

숫자 입력

컴퓨터 키보드에는 0부터 9까지의 열 개의 수가 있다. 이를 이용하여 정수 57을 입력하려면 두 번 (5 한번, 7 한번)  키보드를 쳐야한다. 정수 33을 입력하려해도 역시 두 번 키보드를 쳐야 한다. 1부터 10까지 열 개의 정수를 모두 입력하려면 모두 11번 키보드를 쳐야한다. (1부터 9까지는 각 한번, 10은 두 번) 1부터 34 까지를 모두 입력하려면 모두 59번의 키보드를 쳐야한다.

양의 정수 N에 대해서 1부터 N까지의 정수들을 모두 입력하려면 키보드를 몇 번 쳐야 하는가하는 회수 X를 계산할 수 있다. N=10이면 X=11이고, N=34이면 X=59이다.

이제는 거꾸로 생각해서, 키보드를 친 회수 X가 주어질 때, N을 구하는 것이 문제이다. 예를 들어 X=59이면 N은 34이다. X=11이면 N은 10이다. 어떤 X에 대해서는 해당하는 N이 없을 수도 있다. 예를 들어, X=58이면 N은 없다.

주어진 X에 대해서 N을 계산하는 프로그램을 작성하시오. 해당하는 N이 없으면 -1을 출력한다.

프로그램 이름과 설명 파일 이름은 각각 type.xxx, type.yyy라고 하고 실행 파일 이름은 type.exe로 한다. 프로그램의 실행 시간은 2초를 초과할 수 없다.

입력 형식

입력 파일의 이름은 INPUT.TXT이다. 첫째 줄에 정수 X가 주어진다. X의 최대는 2,000,000,000 (20억)이다.

출력 형식

출력 파일의 이름은 OUTPUT.TXT이다. 입력된 X에 대해 자기가 계산한 N을 첫째 줄에 출력한다. 해당 N이 없으면 -1을 출력한다.

입력과 출력의 예 (1)

INPUT.TXT

59

OUTPUT.TXT

34

입력과 출력의 예 (2)

INPUT.TXT

58

OUTPUT.TXT

-1