만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

피라미드 수열

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

요약
두 피라미드 수열의 높이 N과 M이 주어질 때, 나타나는 서로 다른 순서쌍 (A[i], B[i])의 개수를 센다.
난이도

보통10점 중 7점

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

문제

높이가 XX(X>1X > 1)인 피라미드 수열은 주기가 2X−22X-2이고, 한 주기를 이루는 처음 2X−22X-2개의 항은 1,2,…,X−1,X,X−1,…,21, 2, \ldots, X-1, X, X-1, \ldots, 2이다. 수열은 이 묶음을 무한히 반복한다. 항에는 A[1],A[2],…A[1], A[2], \ldots처럼 1부터 번호를 매긴다.

두 피라미드 수열 AA와 BB의 높이 NN과 MM이 주어진다. 모든 i≥1i \ge 1에서 만들어지는 순서쌍 (A[i],B[i])(A[i], B[i]) 중 서로 다른 것의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 NN과 MM이 공백으로 구분되어 주어진다. (2≤N,M≤1092 \le N, M \le 10^9)

출력

첫째 줄에 서로 다른 순서쌍 (A[i],B[i])(A[i], B[i])의 개수를 출력한다.

힌트

N=3N = 3, M=4M = 4이면 두 수열은 다음과 같다.

  • AA: 1, 2, 3, 2, 1, 2, 3, 2, 1, 2, 3, 2, 1, ...
  • BB: 1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1, ...

이때 서로 다른 순서쌍은 (1,1)(1, 1), (2,2)(2, 2), (3,3)(3, 3), (2,4)(2, 4), (1,3)(1, 3), (3,1)(3, 1)의 6개다.

예제2

  1. 예제 1

    입력
    3 4
    
    예상 출력
    6
    
  2. 예제 2

    입력
    3 5
    
    예상 출력
    5