CF1609F Interesting Sections
题目描述
William 有一个非负数数组 $a_1, a_2, \dots, a_n$。他希望你找出有多少个区间 $l \le r$ 能通过检查。检查的方式如下:
1. 在数组的区间 $[l, r]$ 上找到最小值和最大值。
2. 如果最小值和最大值的二进制表示中 $1$ 的个数相同,则认为该区间通过检查。
输入格式
第一行包含一个整数 $n$($1 \le n \le 10^6$),表示数组 $a$ 的长度。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($0 \le a_i \le 10^{18}$),表示数组 $a$ 的内容。
输出格式
输出一个整数,表示通过检查的区间总数。
说明/提示
由 ChatGPT 4.1 翻译