点击这里查看题目
果然中等题比简单题都简单多了。排序,然后从大到小搜答案。时间复杂度O(n^2)。据说n^3暴力也能过。
#include<iostream>
#include<algorithm>
using namespace std;
int a[10086];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
int ans=-1;
cin>>n;
for(int i=0;i<n;i++)scanf("%d",&a[i]);
sort(&a[0],&a[n]);
int flag=0;
for(int i=n-1;i>=0;i--)
{
int l=0,r=i-1;
while(l<r)
{
if(a[l]+a[r]>a[i])r--;
else if(a[l]+a[r]<a[i])l++;
else if(a[l]+a[r]==a[i])
{
flag=1;break;
}
}
if(flag){ans=a[i];break;}
}
cout<<ans<<endl;
}
}