#B. [SNOI2024] 平方数

    Type: RemoteJudge 10000ms 1024MiB

[SNOI2024] 平方数

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目背景

原题时间限制为 1.5 s。

由于 hack 数据难以通过,改为 10 s。

题目描述

你有一个正整数序列 a1,a2,,ana_1, a_2, \ldots, a_n。请问有多少个区间的乘积是完全平方数。也就是有多少对 (l,r)(l, r)1lrn1 \le l \le r \le n),满足 i=lrai\prod_{i = l}^{r} a_i 是完全平方数。

输入格式

第一行一个整数 nn 表示数字个数。
接下来一行,每行 nn 个数,表示 a1,a2,,ana_1, a_2, \ldots, a_n

输出格式

输出一个整数,表示有多少对区间的乘积是完全平方数。
接下来按照字典序输出这些区间,也就是按照 ll 从小到大输出。
如果有多个 ll 相同的区间,按照 rr 从小到大输出。如果区间个数超过 105{10}^5 个,输出前 105{10}^5 个即可。

10
1 2 3 4 6 8 9 12 16 18

12
1 1
1 5
2 5
3 6
3 7
4 4
4 8
4 9
5 8
5 9
7 7
9 9

3
999999999999999956000000000000000363 999999999999999844000000000000004059 999999999999999866000000000000001353

1
1 3

提示

【样例 #2 解释】

在第二个样例中,这三个数为 101811,101833,1018123{10}^{18} - 11, {10}^{18} - 33, {10}^{18} - 123 两两相乘。


【样例 #3】

见附件中 square/square3.insquare/square3.ans

这个样例满足测试点 464 \sim 6 的条件限制。


【样例 #4】

见附件中 square/square4.insquare/square4.ans

这个样例满足测试点 111411 \sim 14 的条件限制。


【样例 #5】

见附件中 square/square5.insquare/square5.ans

这个样例满足测试点 182018 \sim 20 的条件限制。


【数据范围】

对于所有的数据,保证 1n3×1051 \le n \le 3 \times {10}^51ai10361 \le a_i \le {10}^{36}

具体如下:

测试点编号 nn \le aia_i \le
131 \sim 3 10001000 104{10}^4
464 \sim 6 105{10}^5 106{10}^6
7107 \sim 10 100100 1036{10}^{36}
111411 \sim 14 10001000
151715 \sim 17 105{10}^5
182018 \sim 20 3×1053 \times {10}^5

省选T1练习

Not Attended
Status
Done
Rule
IOI
Problem
2
Start at
2024-2-27 19:00
End at
2024-2-27 21:30
Duration
2.5 hour(s)
Host
Partic.
15