Pentru un număr natural x
, vom nota cu B(x)
numărul biților de 1
din reprezentarea lui x
în baza 2
. De exemplu, B(6) = 2
, B(15) = 4
, B(16) = 1
. Fie un șir de N
numere naturale x
1
, x
2
, …, x
N
. Pentru orice două valori i
și j
, cu 1 ≤ i ≤ j ≤ N
, vom nota prin B(i, j) = B(x
i
) + B(x
i+1
) + ... + B(x
j
)
, adică B(i, j)
este numărul tuturor biților de 1
din secvența de numere x
i
, x
i+1
, …, x
j
.
Cerința
Dat șirul x
1
, x
2
, …, x
N
și un număr natural T
, să se determine numărul secvențelor de forma x
i
, x
i+1
, …, x
j
cu proprietatea că B(i,j) = T
.
Date de intrare
Fișierul de intrare secvb.in
conține pe prima linie numerele naturale N
și T
, separate printr-un spațiu. Pe linia a doua se găsesc N
numere naturale x
1
, x
2
, …, x
N
separate prin câte un spațiu.
Date de ieșire
Fișierul de ieșire secvb.out
va conține un singur număr natural reprezentând numărul de secvențe din șir care au numărul biților de 1
egal cu T
.
Restricții și precizări
1 ≤ N ≤ 50.000
0 ≤ T ≤ 100.000
- valorile din şir sunt numere naturale cuprinse între
1
și1000
.
Exemplul 1:
secvb.in
7 6 8 3 7 14 10 63 1
secvb.out
3
Explicație
Sunt trei secvențe având în total 6
biți de 1
:
8 3 7
7 14
63
Exemplul 2:
secvb.in
4 1 3 5 7 6
secvb.out
0
Explicație
Nu există nicio secvență pentru care suma biților de 1
să fie egală cu 1
.