CF145D Lucky Pair
题目描述
Petya 非常喜欢幸运数。众所周知,幸运数是十进制表示中只包含幸运数字 $4$ 和 $7$ 的正整数。例如,$47$、$744$、$4$ 是幸运数,而 $5$、$17$、$467$ 不是。
Petya 有一个包含 $n$ 个整数的数组 $a$。数组从 $1$ 开始编号。不幸的是,Petya 调皮捣蛋,所以父母不允许他玩包含过多幸运数的数组。保证数组 $a$ 中最多只有 $1000$ 个幸运数。
Petya 需要找到一对不相交的区间 $[l_1, r_1]$ 和 $[l_2, r_2]$($1 \le l_1 \le r_1 < l_2 \le r_2 \le n$,四个数均为整数),使得不存在某个幸运数同时出现在子数组 $a[l_1..r_1]$ 和 $a[l_2..r_2]$ 中。请你帮 Petya 统计这样的区间对的数量。
输入格式
第一行包含一个整数 $n$($2 \le n \le 10^5$)——数组 $a$ 的长度。
第二行包含 $n$ 个以空格分隔的整数 $a_i$($1 \le a_i \le 10^9$)——数组 $a$ 的元素。保证数组 $a$ 中最多只有 $1000$ 个幸运数。
输出格式
输出一行一个整数,表示满足条件的区间对的数量。
请不要使用 %lld 来读取或输出 C++ 的 64 位整数。推荐使用 cin、cout 流或 %I64d 格式控制符。
说明/提示
子数组 $a[l..r]$ 指的是由 $a_l, a_{l+1}, \ldots, a_r$ 组成的数组。
在第一个样例中,满足条件的区间对共有 $9$ 个,分别为:$[1,1]$ 和 $[2,2]$,$[1,1]$ 和 $[2,3]$,$[1,1]$ 和 $[2,4]$,$[1,1]$ 和 $[3,3]$,$[1,1]$ 和 $[3,4]$,$[1,1]$ 和 $[4,4]$,$[1,2]$ 和 $[3,3]$,$[2,2]$ 和 $[3,3]$,$[3,3]$ 和 $[4,4]$。
在第二个样例中,只有一对区间——$[1,1]$ 和 $[2,2]$,它满足条件。
由 ChatGPT 5 翻译