Deltix Round, Autumn 2021 (open for everyone, rated, Div. 1 + Div. 2)
F
Interesting Sections
Codeforces
2800
原题
← EG →
翻译中…

image

翻译中…

William has an array of non-negative numbers $a_1, a_2, \dots, a_n$. He wants you to find out how many segments $l \le r$ pass the check. The check is performed in the following manner:

翻译中…
  1. The minimum and maximum numbers are found on the segment of the array starting at $l$ and ending at $r$.
  2. The check is considered to be passed if the binary representation of the minimum and maximum numbers have the same number of bits equal to 1.
翻译中…

Input

翻译中…

The first line contains a single integer $n$ ($1 \le n \le 10^6$), the size of array $a$.

翻译中…

The second line contains $n$ integers $a_1, a_2, \dots, a_n$ ($0 \le a_i \le 10^{18}$), the contents of array $a$.

翻译中…

Output

翻译中…

Output a single number  — the total number of segments that passed the check.

翻译中…

样例

Input #1
5
1 2 3 4 5
Output #1
9
InputCopy OutputCopy
Input #2
10
0 5 7 3 9 10 1 6 13 7
Output #2
18
InputCopy OutputCopy
题目信息
题号
1609F
时间限制
2 s
内存限制
256 MB
标签
数据结构
分治
折半搜索
双指针

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。