Se consideră numerele naturale nenule N
și D
urmate de o secvență S
de N
numere naturale nenule ordonate crescător, indexate de la 1
la N
.
Cerința
Să se determine numărul de cvintete de indici (i1, i2, i3, i4, i5)
ce verifică relațiile:
a • b • c = D
a • x
2
+ b • y
2
= c
2
a < b < c
x ≠ y
unde am notat cu a = S[i
1
]
, b = S[i
2
]
, c = S[i
3
]
, x = S[i
4
]
, y = S[i
5
]
. Rezultatul se va afișa modulo 1.000.000.007
.
Date de intrare
Fișierul de intrare cvintete.in
conține pe prima linie două numere naturale nenule N
și D
cu semnificația
din enunț. Pe următoarea linie se vor afla N
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 1.000.000.007
.
Subtask-uri
- Subtask 1 (16 puncte):
1 ≤ N ≤ 20
,1 ≤ S[i] ≤ 20
,1 ≤ D ≤ 250
- Subtask 2 (12 puncte):
1 ≤ N ≤ 1000
,1 ≤ S[i] ≤ 1000
,1 ≤ D ≤ 100.000
- Subtask 3 (25 puncte):
1 ≤ N ≤ 5000
,1 ≤ D ≤ 10.000.000
,S[i]=i
, pentru orice1 ≤ i ≤ N
- Subtask 4 (28 puncte):
1 ≤ N ≤ 10.000
,1 ≤ S[i] ≤ 5000
,1 ≤ D ≤ 10.000.000
- Subtask 5 (19 puncte):
1 ≤ N ≤ 100.000
,1 ≤ S[i] ≤ 20.000
,1 ≤ D ≤ 1.000.000.000
- Pentru toate subtask-urile, se respectă relația
S[i] ≤ S[i + 1]
, oricare ar fi1 ≤ i ≤ N - 1
.
Exemplul 1:
cvintete.in
4 6 1 2 3 3
cvintete.out
2
Explicație
Cvintetele care respectă cerința sunt: (1, 2, 3, 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
Cvintetele care respectă cerința sunt: (1, 6, 10, 8, 4)
, (1, 6, 10, 8, 5)
, (1, 7, 9, 2, 4)
, (1, 7, 9, 2, 5)