서로소 싫어

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

요약
x와 서로소가 아닌 양의 정수 z를 더하거나 빼는 연산을 두 번 이하로 써서 x를 y와 같게 만든다.
난이도

어려움10점 중 8점

유형
정수론, 수학, 그리디, 구현
정답자
아직 제출이 없습니다

문제

22 이상 10910^9 이하인 두 정수 xx와 yy가 주어진다. xx에 다음과 같은 연산을 두 번 이하로 사용해서 xx와 yy를 같은 값으로 만들어 보자.

  • xx와 서로소가 아닌 11 이상 101810^{18} 이하의 정수 zz를 고른다. xx에 zz를 더하거나 xx에서 zz를 뺀다.

연산을 시행하고 나서 xx는 항상 11 이상 101810^{18} 이하의 정수여야 한다.

항상 두 번 이하의 연산을 사용해서 xx를 yy로 만들 수 있음을 증명할 수 있다.

입력

첫째 줄에 두 정수 xx와 yy가 공백으로 구분되어 주어진다. (2≤x,y≤109)(2\leq x,y\leq 10^9)

출력

첫째 줄에 연산을 몇 번 사용했는지를 나타내는 정수 MM을 출력한다. (0≤M≤2)(0\leq M \leq 2)

둘째 줄부터 줄마다 사용한 연산에 대한 내용을 순서대로 출력한다.

  • xx에 zz를 더하는 연산이라면 zz를 출력한다.
  • xx에서 zz를 빼는 연산이라면 −z-z를 출력한다.

예제3

  1. 예제 1

    입력
    4 4
    
    예상 출력
    2
    4
    -4
    
  2. 예제 2

    입력
    7 12
    
    예상 출력
    2
    7
    -2
    
  3. 예제 3

    입력
    6 9
    
    예상 출력
    1
    3