Expresiones correctas P68813


Statement
 

pdf   zip

En este problema consideramos las expresiones definidas de la manera siguiente:

  • Toda variable es una expresión correcta;

  • si xx es una expresión correcta, (x)(x) también lo es;

  • si x1x_1 y x2x_2 son expresiones correctas, (x1)(x2)(x_1) - (x_2) también lo es;

  • nada más es una expresión correcta.

Por ejemplo, si el conjunto de variables es A,B,C{A, B, C}, éstas serían algunas expresiones correctas:

A(A)((C))(A)(B)((A)(B))(A)A \qquad (A) \qquad ((C)) \qquad (A)-(B) \qquad ((A)-(B))-(A)

Haced un programa que, dados dos números nn y mm, escriba el número de expresiones correctas de longitud exactamente nn que se pueden construir con mm variables.

Por ejemplo, para n=7n = 7 y m=2m = 2 el resultado debería ser 6, correspondiente a

(((A)))(((B)))(A)(A)(A)(B)(B)(A)(B)(B)(((A))) \qquad (((B))) \qquad (A)-(A) \qquad (A)-(B) \qquad (B)-(A) \qquad (B)-(B)

Entrada

La entrada consiste en diversos casos, cada uno con dos naturales nn y mm entre 1 y 25.

Salida

Para cada caso, escribid el número de expresiones correctas de longitud exactamente nn que se pueden construir con mm variables. Este número será siempre inferior a 10910^9.

Public test cases
  • Input

    7 2
    1 20
    20 1
    21 1
    25 25
    

    Output

    6
    20
    0
    212
    307378150
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Translator
    Omer Giménez
    Original language
    Catalan
    Other languages
    Catalan English
    Official solutions
    C++
    User solutions
    C++ Python