cvintete

Time limit: 0.2s Memory limit: 64MB Input: cvintete.in Output: cvintete.out

Se consideră numerele naturale nenule NN și DD urmate de o secvență SS de NN numere naturale nenule ordonate crescător, indexate de la 11 la NN.

Să se determine numărul de cvintete de indici (i1,i2,i3,i4,i5)(i_1,i_2,i_3,i_4,i_5) ce verifică relațiile:

  • abc=Da \cdot b \cdot c = D
  • ax2+by2=c2a \cdot x^2 + b \cdot y^2 = c^2
  • a<b<ca < b < c
  • xyx \neq y

unde am notat cu a=S[i1]a = S[i_1], b=S[i2]b = S[i_2], c=S[i3]c = S[i_3], x=S[i4]x = S[i_4], y=S[i5]y = S[i_5].

Rezultatul se va afișa modulo 109+710^9 + 7.

Date de intrare

Fișierul de intrare cvintete.in conține pe prima linie două numere naturale nenule NN și DD cu semnificația din enunț.
Pe următoarea linie se vor afla NN numere naturale nenule ordonate crescător.

Date de ieșire

Fișierul de ieșire cvintete.out va conține un singur număr natural care reprezintă rezultatul cerinței, modulo 109+710^9 + 7.

Restricții și precizări

# Punctaj Restricții
1 16 1N201S[i]201D2501 \leq N \leq 20 \quad 1 \leq S[i] \leq 20 \quad 1 \leq D \leq 250
2 12 1N10001S[i]10001D1051 \leq N \leq 1\,000 \quad 1 \leq S[i] \leq 1\,000 \quad 1 \leq D \leq 10^{5}
3 25 1N50001D107S[i]=i1 \leq N \leq 5\,000 \quad 1 \leq D \leq 10^{7} \quad S[i] = i, pentru orice 1iN1 \leq i \leq N
4 28 1N100001S[i]50001D1071 \leq N \leq 10\,000 \quad 1 \leq S[i] \leq 5\,000 \quad 1 \leq D \leq 10^{7}
5 19 1N1000001S[i]200001D1091 \leq N \leq 100\,000 \quad 1 \leq S[i] \leq 20\,000 \quad 1 \leq D \leq 10^{9}
  • Pentru toate subtask-urile, se respectă relația S[i]S[i+1]S[i] \leq S[i + 1], oricare ar fi 1iN11 \leq i \leq N - 1.

Exemplul 1

cvintete.in

4 6
1 2 3 3

cvintete.out

2

Explicație

Pentru primul exemplu, cvintetele care respectă cerința sunt (1,2,3,1,2)(1, 2, 3, 1, 2) și (1,2,4,1,2)(1, 2, 4, 1, 2).

Exemplul 2

cvintete.in

10 60
1 2 3 4 4 5 6 8 10 12

cvintete.out

4

Explicație

Pentru al doilea exemplu, cvintetele care respectă cerința sunt (1,6,10,8,4)(1, 6, 10, 8, 4), (1,6,10,8,5)(1, 6, 10, 8, 5), (1,7,9,2,4)(1, 7, 9, 2, 4) și (1,7,9,2,5)(1, 7, 9, 2, 5).

Log in or sign up to be able to send submissions!