만드는 중입니다

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

성장하는 수열

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

요약
길이가 n이고 각 원소가 앞 원소의 두 배 이상이며 값이 1부터 c 사이인 배열의 개수를 998244353으로 나눈 나머지로 구합니다.
난이도

보통10점 중 6점

유형
조합론, 수학, 동적 계획법
정답자
아직 제출이 없습니다

문제

지수적으로 증가하는 수열은 과학 연구에서 자주 등장한다. 일부 연구자는 길이가 nn인 정수 배열 중에서 각 원소가 바로 앞 원소의 두 배 이상인 배열에 특히 관심을 가진다. 형식적으로는 1≤i≤n−11 \le i \le n-1인 모든 ii에 대해 2⋅ai≤ai+12 \cdot a_i \le a_{i+1}이 성립하는 배열이다. 원소가 1 이상 cc 이하인 정수로 이루어진 이런 배열의 개수를 세어라. 개수가 매우 클 수 있으므로 998 244 353998\,244\,353으로 나눈 나머지를 출력한다.

입력

입력은 한 줄이며, 두 정수 nn과 cc가 주어진다 (1≤n≤601 \le n \le 60; 1≤c≤10181 \le c \le 10^{18}). nn은 배열의 길이이고, cc는 원소의 최댓값이다.

출력

조건을 만족하는 서로 다른 배열의 개수를 998 244 353998\,244\,353으로 나눈 나머지를 출력한다.

힌트

첫 번째 예제에서는 서로 다른 배열이 [1], [2], [3], [4], [5]로 다섯 개이다. 두 번째 예제에서는 서로 다른 배열이 [1, 2, 4], [1, 2, 5], [1, 2, 6], [1, 3, 6]으로 네 개이다. 세 번째 예제에서는 조건을 만족하는 배열이 없다.

예제4

  1. 예제 1

    입력
    1 5
    
    예상 출력
    5
    
  2. 예제 2

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

    입력
    15 179
    
    예상 출력
    0
    
  4. 예제 4

    입력
    35 1234567887654321
    
    예상 출력
    576695683