아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

턴 게임

시간 제한2초메모리 제한512 MB

요약
최종 점수 x와 y가 주어질 때, 1, 2, 3, ...의 앞부분을 두 그룹으로 나눠 합이 각각 x, y가 되게 할 수 있는지 판정하고, 가능하면 윤호가 이긴 턴 수의 최솟값을 구한다.
난이도

보통10점 중 7점

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

문제

윤호와 동혁이는 알고리즘 캠프에 참가하고 있다. 두 사람은 문제가 잘 풀리지 않을 때 게임을 한다.

게임은 여러 번의 턴으로 이루어지고, 각 턴의 승자는 두 사람 중 한 명이다. 턴 번호는 11부터 시작하며, ii번째 턴을 이긴 사람이 ii점을 얻는다.

두 정수 xx와 yy가 주어졌을 때, 게임이 끝난 뒤 윤호의 점수가 xx, 동혁이의 점수가 yy가 되는 경우가 존재하는지 판단하는 프로그램을 작성하시오. 존재한다면 윤호가 이겨야 하는 턴의 최소 개수도 구하시오.

입력

첫째 줄에 두 정수 xx와 yy가 주어진다. (0≤x,y≤10120 \le x, y \le 10^{12})

출력

윤호가 최소 몇 번 이겨야 하는지 출력한다. 가능한 경우가 없으면 −1-1을 출력한다.

힌트

윤호의 점수가 77, 동혁이의 점수가 1414이면 게임은 66턴 동안 진행된다. 윤호가 1,2,41, 2, 4번 턴을 이기고 동혁이가 3,5,63, 5, 6번 턴을 이기는 것도 가능한 결과이다. 윤호의 승리 횟수가 가장 적은 경우는 윤호가 11번과 66번 턴을 이기고 동혁이가 2,3,4,52, 3, 4, 5번 턴을 이긴 경우이다.

예제4

  1. 예제 1

    입력
    7 14
    
    예상 출력
    2
    
  2. 예제 2

    입력
    10 0
    
    예상 출력
    4
    
  3. 예제 3

    입력
    932599670050 67400241741
    
    예상 출력
    1047062
    
  4. 예제 4

    입력
    7 13
    
    예상 출력
    -1