因为是萌新,一开始就打算用暴力三个循环来写,然后看评论区有大佬说1+3和2+4也算同一种,就没办法,只能单独判断了,结果写完只有一个点超时了,怎么也想不明白为啥别人三个循环能过,我两个就超时QAQ
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,t=0,a[105],b[10005]={0},ans=0;
cin >> n;
for(int i=0;i<n;i++)
cin >> a[i];
for(int i=0;i<n-1;i++) //循环两个数相加
{
for(int j=i+1;j<n;j++)
{
t=a[i]+a[j];
b[t]++; //把得出来的和存起来
t=0;
}
}
for(int i=0;i<n;i++)
{ //在给的数组里面找刚刚得到过的,大于1次就算一次
if(b[a[i]]>=1)
ans++;
}
cout << ans << endl;
return 0;
}
第二个测试点过不了,查看了一下,给的是100个数据,超时了= =