By Maratona de Programação da SBC 2017 Brazil
Vinícius gosta muito de se exercitar na academia de ginástica. Ele fez um acordo com o seu treinador para ter programas de exercícios diferentes a cada vez que usar a bicicleta ergométrica. Um programa, na linguagem das academias, é uma sequência de níveis de dificuldade do exercício. Os programas de Vinícius para a bicicleta ergométrica devem ter a mesma duração em minutos e os níveis de dificuldade devem mudar a cada minuto, para um nível imediatamente acima ou um nível imediatamente abaixo. Os níveis de dificuldade não podem estar abaixo de um mínimo e nem acima de um máximo previamente estipulados.
Seu problema é calcular o número de programas diferentes que o treinador pode construir, obedecidas as restrições acima.
A entrada consiste de uma única linha que contém três inteiros, T, M, N (1 ≤ T ≤ 50 , 1 ≤ M < N ≤ 105 ) em que T é o número de minutos do exercício, M é o valor mínimo de dificuldade permitido e N é o valor máximo de dificuldade permitido.
Seu programa deve produzir uma única linha com um inteiro representando o número de programas diferentes que o treinador pode construir. Como esse número pode ser grande, a resposta deve ser esse número módulo 109 + 7.
Input Samples | Output Samples |
3 2 5 |
10 |
30 2 5 |
4356618 |
50 1 100000 |
738072143 |