9541: 小塔的序列

内存限制:512 MB 时间限制:10 S
题面:传统 评测方式:文本比较 上传者:
提交:2 通过:2

题目描述

小塔是一位热爱数学的初中生,最近她在研究一些有趣的数字序列。有一天,她在整理自己的数字卡片时发现了一个有趣的问题:如何从一长串数字中找出最长的连续子序列,使得这些数字的乘积是一个完全平方数?

完全平方数是指可以表示为某个整数的平方的数,比如1(1×1)、4(2×2)、9(3×3)等。小塔觉得这个问题很有挑战性,决定编写一个程序来解决它。

给定一个数字序列 aa,请你帮助小塔找出最长的连续子区间,使得这个子区间内所有数字的乘积是一个完全平方数。如果存在多个长度相同的子区间,选择最靠左的一个。

输入格式

第一行包含一个整数 tt,表示测试用例的数量

每个测试用例包含两行:

  • 第一行一个整数 nn,表示序列的长度
  • 第二行包含 nn 个空格分隔的整数 aiai,表示序列中的数字

保证所有测试用例的 nn 之和不超过 107107

数据范围:

  • 1≤t≤1051t105
  • 1≤n≤1051n105
  • 1≤ai≤1061ai106

输出格式

对于每个测试用例,输出一行两个整数 ll 和 rr,表示满足条件的最长子区间的左右端点(从1开始计数)

如果有多个长度相同的子区间,输出 ll 最小的一个

如果没有满足条件的子区间,输出 -1 -1

输入样例 复制

2
3
1 2 3
4
2 3 3 4

输出样例 复制

1 1
2 4