#include <iostream>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std;
int main()
{
int n,a[105],res=0,pos=0;
memset(a,0,sizeof(a));
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
bool b[105];
memset(b,0,sizeof(b));
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
pos=a[i]+a[j];
for(int k=j+1;k<n;k++){
if(a[k]==pos&&b[pos]==0){
res++;
b[pos]=true;
}
}
}
}
cout<<res<<endl;
return 0;
}
两个超时一个错误。。。我个人认为用sort之后能够不要记录加数和被加数,省下了另做标记的时间,会是这两个sort超了时吗?还有哪里可以改进的地方吗?谢谢大佬[鞠躬]!