Divisible por i


Submit solution


Points: 100 (partial)
Time limit: 2.0s
Memory limit: 1G

Authors:
Problem type
Allowed languages
C, C++, Go, Java, Pascal, Python, VB

Dada una secuencia A de N números. Encuentre la cantidad de maneras de separar A en algún número de subsecuencias contiguas no vacías B1,B2,...,Bk tal que se cumpla la siguiente condición:

  • Para cada i (1ik), la suma de los elementos en Bi es divisible por i.

Ya que dicha cantidad puede ser enorme, exprésela módulo (109+7).

Constantes

  • (1n3000)
  • (1Ai1015)
  • Todos los valores de la entrada son enteros

Entrada

La entrada se dará en el siguiente formato:

  • N

  • A1 A2 ... AN

Salida

Imprima la cantidad de formas de separar la secuencia de tal manera que se cumpla la condición antes descrita, módulo (109+7).

Ejemplo #1 de Entrada

Copy
4
1 2 3 4

Ejemplo #1 de Salida

Copy
3

Tenemos tres maneras de separar la secuencia:

  • (1),(2),(3),(4)

  • (1,2,3),(4)

  • (1,2,3,4)

Ejemplo #2 de Entrada

Copy
5
8 6 3 3 3

Ejemplo #2 de Salida

Copy
5

Ejemplo #3 de Entrada

Copy
10
791754273866483 706434917156797 714489398264550 918142301070506 559125109706263 694445720452148 648739025948445 869006293795825 718343486637033 934236559762733

Ejemplo #3 de Salida

Copy
15

Puede que los valores de la entrada no entren en un entero de 32-bit.


Comments


  • 0
    JoJo_Cubano_13  commented on Jan. 1, 2024, 9:39 p.m.

    En definitiva un problema muy bonito. <3