https://codeforces.com/problemset/problem/1399/C
思路:因为数据范围较小,我们从2到100依次枚举 s ,然后用双指针判断一下加起来等于 s 的一共有多少对
#include<iostream>
#include<algorithm>
using namespace std;
int num[110];
void solved()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>num[i];
}
sort(num+1,num+n+1);
int ans=0,cnt=0;
for(int s=2;s<=100;s++)
{
int l=1,r=n;
while(l<r)
{
if(num[l]+num[r]==s)
{
cnt++;
l++,r--;
}
else if(num[l]+num[r]<s) l++;//小了
else r--;//大了
}
ans=max(ans,cnt);
cnt=0;
}
cout<<ans<<endl;
}
int main()
{
int t;
cin>>t;
while(t--)
{
solved();
}
return 0;
}