QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB

#19946. Helipuerto

Statistics

Helipuerto

Se desea construir un helipuerto en la azotea de un edificio para que puedan aterrizar helicópteros.

El helipuerto debe cumplir con todas las siguientes condiciones:

  • El helipuerto está compuesto por $k$ ($k \ge 1$) círculos concéntricos.
  • Los radios de los círculos que componen el helipuerto son $1, 2, \dots, k$ (números naturales distintos entre $1$ y $k$, inclusive).
  • La circunferencia de cada círculo debe pintarse con un único color de pintura.

El tamaño del helipuerto es el radio del mayor de los círculos concéntricos, lo cual, según las condiciones anteriores, es igual a la cantidad $k$ de círculos concéntricos.

Dos helipuertos se consideran distintos si sus tamaños son diferentes o, teniendo el mismo tamaño, la combinación de colores pintados en los círculos concéntricos es diferente.

Para pintar la circunferencia de un círculo de radio $r$, se necesitan exactamente $r$ botes de pintura.

Por ejemplo, cuando se tienen 3 botes de pintura roja y 4 botes de pintura azul, hay 9 helipuertos distintos que se pueden construir usando estas pinturas, tal como se muestra en la siguiente figura. La marca X indica el centro de los círculos concéntricos.

Como referencia, para dibujar un helipuerto de tamaño 3 como el que se muestra en la siguiente figura, se necesitarían $4 = 1 + 3$ botes de pintura roja y 2 botes de pintura azul; sin embargo, como solo se dispone de 3 botes de pintura roja, no es suficiente y dicho helipuerto no se puede construir.

Actualmente tienes $a$ botes de pintura roja y $b$ botes de pintura azul. Escribe un programa que calcule la cantidad de helipuertos distintos que se pueden construir usando únicamente estas pinturas, módulo $10^9 + 7$.

Debes resolver $T$ casos de prueba en una sola entrada.

Restricciones

  • Todos los números dados son enteros.
  • $1 \le T \le 10\ 000$
  • $1 \le a, b \le 50\ 000$

Subtareas

  1. (3 puntos) $T = 1$. $a, b \le 6$.
  2. (17 puntos) $T = 1$. $a, b \le 100$.
  3. (21 puntos) $T = 1$. $a, b \le 1\ 000$.
  4. (23 puntos) $T = 1$. $a, b \le 5\ 000$.
  5. (26 puntos) $T = 1$.
  6. (10 puntos) Sin restricciones adicionales.

Entrada

La primera línea contiene la cantidad de casos de prueba $T$.

Las siguientes $T$ líneas contienen los casos de prueba, uno por línea. Cada línea contiene dos enteros $a$ y $b$, separados por un espacio.

Salida

Para cada caso de prueba, imprime en una línea independiente la cantidad de helipuertos distintos que se pueden construir usando únicamente $a$ botes de pintura roja y $b$ botes de pintura azul, módulo $10^9 + 7$.

Ejemplos

Entrada 1

3
3 4
10 5
7 12

Salida 1

9
25
40

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.