수 뒤집기

시간 제한1초메모리 제한32 MB

요약
최대 10000자리 수 M이 주어질 때 M = N + Rev(N)을 만족하는 자연수 N이 있는지 판정한다.
난이도

보통10점 중 7점

유형
문자열, 수학, 구현
정답자
아직 제출이 없습니다

문제

수에는 흥미로운 성질이 많다. 이 문제에서는 그중 하나를 살펴본다.

먼저 어떤 수를 뒤집는다는 것을 정의하자. 십진법으로 an…a1a0a_n \dots a_1 a_0 으로 표기되는 수 NN의 뒤집은 수는 자릿수를 거꾸로 나열한 a0a1…ana_0 a_1 \dots a_n 이며, 이를 Rev(N)\mathrm{Rev}(N) 이라고 쓴다. 이때 앞쪽에 생기는 00은 버린다. 예를 들어 Rev(123)=321\mathrm{Rev}(123) = 321 이고 Rev(7400)=47\mathrm{Rev}(7400) = 47 이다.

여러 개의 자연수가 주어진다. 각 수 MM에 대해, 어떤 자연수 NN이 존재하여 M=N+Rev(N)M = N + \mathrm{Rev}(N) 을 만족하는지 판단하여라.

입력

입력은 최대 10001개의 줄로 이루어진다. 각 줄에는 자릿수가 10000 미만인 양의 정수가 하나씩 주어진다. 입력의 마지막 줄에는 00이 주어지며, 이 수는 처리하지 않는다.

출력

입력의 각 수 MM에 대해, M=N+Rev(N)M = N + \mathrm{Rev}(N) 을 만족하는 자연수 NN이 존재하면 YES를, 그렇지 않으면 NO를 한 줄에 하나씩 출력한다.

예제4

  1. 예제 1

    입력
    1
    2
    11
    13
    14003
    767513456469789456166547987979741366664879441
    0
    
    예상 출력
    NO
    YES
    YES
    NO
    YES
    NO
    
  2. 예제 2

    입력
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    0
    
    예상 출력
    NO
    YES
    NO
    YES
    NO
    YES
    NO
    YES
    NO
    YES
    
  3. 예제 3

    입력
    22
    121
    100
    198
    1000
    0
    
    예상 출력
    YES
    YES
    NO
    YES
    NO
    
  4. 예제 4

    입력
    11
    110
    1010
    1001
    1000
    1002
    0
    
    예상 출력
    YES
    YES
    YES
    YES
    NO
    NO