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

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

세 대의 기계

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

요약
정수 쌍에 대한 세 가지 변환을 이용해 주어진 모든 카드 (1, a_i)를 만들 수 있는 시작 쌍 (a,b)의 개수를 센다.
난이도

어려움10점 중 8점

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

문제

Spaceman Spoof's Functions에서 Abhilash, Brian, 그리고 당신 Spaceman Spoof는 사악한 Zargon으로부터 탈출할 수 있었다. 하지만 그들의 팀의 네 번째 멤버인 Aditya가 들어갈 자리가 없어 위험한 상황에 놓였다. 그는 Zargon 감옥에 갇혀 있으며, 세 대의 이상한 기계와 아무것도 쓰이지 않은 카드 한 장을 가지고 있다. 방을 나가려면 nn개의 잠긴 문을 통과해야 하며, 각 문은 특정한 두 수의 쌍이 적힌 카드가 있어야 열린다. Aditya는 자신의 카드에 정수 쌍 (a,b)(a,b)를 적을 수 있으며, 이때 양의 정수 mm에 대해 1≤a<b≤m1 \leq a < b \leq m을 만족해야 한다. 그런 다음 그는 감방에 있는 세 대의 기계를 사용할 수 있는데, 각 기계는 카드 한 장 또는 두 장을 받아 새 카드를 출력하며, 입력으로 넣은 원래 카드들은 모두 돌려받는다:

  1. 첫 번째 기계는 (x,y)(x,y)가 적힌 카드를 받아 (x+1,y+1)(x + 1, y + 1)이 적힌 카드를 출력한다.
  2. 두 번째 기계는 (x,y)(x,y)가 적힌 카드를 받아 xx와 yy가 모두 짝수이면 (x/2,y/2)(x/2, y/2)가 적힌 카드를 출력한다. 그렇지 않으면 새 카드를 출력하지 않는다.
  3. 마지막 기계는 (x,y)(x,y)와 (y,z)(y,z)가 적힌 두 카드를 받아 (x,z)(x, z)가 적힌 카드를 출력한다.

Aditya에게는 시간이 무한히 많으므로 이 기계들을 필요한 만큼 사용할 수 있다. Zargon은 수다스러워서 Aditya는 간수들로부터 ii번째 잠긴 문은 (1,ai)(1, a_i)가 적힌 카드로 열 수 있다는 것을 알아냈다. 정수 배열 [a1,a2,…,an][a_1, a_2, \dots, a_n]이 주어졌을 때, Aditya가 처음 카드에 적는 정수 쌍 (a,b)(a,b) 중 몇 개에 대해 Aditya가 결국 감옥을 탈출할 수 있는가?

입력

입력의 첫 번째 줄에는 공백으로 구분된 두 정수 nn과 mm (1≤n≤105,2≤m≤1015(1 \leq n \leq 10^5, 2 \leq m \leq 10^{15})이 주어지며, 각각 Aditya의 감방을 지키는 잠긴 문의 수와 Aditya가 처음 카드에 적을 수 있는 최댓값이다.

다음 줄에는 nn개의 공백으로 구분된 정수 a1a_1부터 ana_n까지가 주어지며, 2≤ai≤10152 \leq a_i \leq 10^{15}이다. Aditya는 ii번째 문을 열기 위해 (1,ai)(1,a_i)가 적힌 카드를 만들어야 한다. (aia_i는 서로 다를 필요가 없다.)

출력

1≤a<b≤m1\leq a < b \leq m인 시작 카드 (a,b)(a,b) 중 Aditya가 탈출에 필요한 모든 카드를 만들 수 있는 것의 개수를 출력한다. 답은 C++ long long에 들어감이 보장된다.

예제3

  1. 예제 1

    입력
    1 6
    2
    
    예상 출력
    11
    
  2. 예제 2

    입력
    1 6
    7
    
    예상 출력
    14
    
  3. 예제 3

    입력
    2 10
    13 7
    
    예상 출력
    36