#3943. [GESP2403 三级] 完全平⽅数

[GESP2403 三级] 完全平⽅数

完全平⽅数

题目描述

⼩杨同学有⼀个包含 个⾮负整数的序列 ,他想要知道其中有多少对下标组合 ( ),使得 是完全平⽅数。 如果 是完全平⽅数,则存在⾮负整数 使得 。

输入格式

第⼀⾏⼀个⾮负整数 ,表⽰⾮负整数个数。 第⼆⾏包含 个⾮负整数 ,表⽰序列 包含的⾮负整数。

输出格式

输出⼀个⾮负整数,表⽰和是完全平⽅数的⾮负整数对数。 3.2.4 样例1 1 5 2 1 4 3 3 5 1 3 对于全部数据,保证有 。 3.2.5 参考程序 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1010; 4 int a[N]; 5 int main(){ 6 int n; 7 cin >> n; 8 for(int i=1;i<=n;i++){ 9 cin>>a[i]; 10 } 11 int ans=0; 12 for(int i=1;i<=n;i++){ 13 for(int j=i+1;j<=n;j++){ 14 int m = a[i] + a[j]; 15 int t = sqrt(m + 1e-7); 16 if(t * t == m) 17 ans++; 18 } 19 } 20 cout<<ans<<"\n"; 21 }

样例输入 #1

1 5
2 1 4 3 3 5
1 3

样例输出 #1


数据范围

见题目描述

知识点与难度

本题涉及的知识点从属于 GESP 3级,难度等级:⭐⭐ 。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 20 3~8 小规模 / 特殊性质
2 15 9~11 Hack
3 30 12~20 中大规模
4 25 21~25 随机回归

生测试数据后,按实际 subtask 分组改写上表。