U E D R , A S I H C RSS

1thPCinCAUCSE/ProblemB

1회 중앙대학교 컴퓨터공학과 프로그래밍 경진 대회 B번 문제 : 숫자 입력

컴퓨터 키보드에는 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을 출력한다.

입력
입력은 표준 입력이다. 입력의 첫줄에 테스트 케이스의 개수를 나타내는 정수 T (10 이하) 가 주어진다. 다음 T줄의 각 줄마다 테스트 케이스가 주어진다. 테스트 케이스는 정수 한개(X)로 이뤄진다. X의 최대는 2,000,000,000(20억) 이다.

출력
출력은 표준 출력이다. 각 테스트 케이스의 X에 대해 자기가 계산한 N을 한 줄에 하나씩 출력한다. 해당 N이 없으면 -1을 출력한다. T개의 테스트 케이스를 모두 맞춰야 이 문제를 맞춘 것이다.

입력의 예
~cpp 
3
59
58
11

입력의 예에 대한 출력
~cpp 
34
-1
10

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.0880 sec