哪位大佬来帮忙给我这个蒟蒻找找错,感谢万分
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<bitset>
#define ll int
using namespace std;
ll read(){
ll ans=0,fh=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-')fh=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
ans=ans*10+c-'0';
c=getchar();
}
return ans*fh;
}
ll n,a[1000005];
int main(){
n=read();
for(int i=1;i<=n;i++){
a[read()]++;
}
ll ans=0;
for(int i=1;i<=100005;i++){
if(!a[i])continue;
for(int j=sqrt(i)+1;j*j<=200010;j++){
// if(j*j<i)continue;
ans+=a[i]*a[j*j-i];
}
}
cout<<ans/2;
return 0;
}
#include<iomanip>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<bitset>
#define ll int
using namespace std;
ll read(){
ll ans=0,fh=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-')fh=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
ans=ans*10+c-'0';
c=getchar();
}
return ans*fh;
}
ll n,a[1000005];
int main(){
n=read();
for(int i=1;i<=n;i++){
a[read()]++;
}
ll ans=0;
for(int i=1;i<=100005;i++){
if(!a[i])continue;
for(int j=sqrt(i)+1;j*j<=200010;j++){
// if(j*j<i)continue;
ans+=a[i]*a[j*j-i];
}
}
cout<<ans/2;
return 0;
}
全部评论
(0) 回帖