C. Boats Competition【双指针】

枚举sum 2  ->  2*n 即可

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[100000];
int b[100000];
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
        }
        sort(a+1,a+n+1);
        
        int ans = 0;

        for(int sum = 1;sum<=2*n ; sum++)
        {
            int i = 1;
            int j = n;
            int cnt = 0;
            while(i < j)
            {
                if(a[i]+a[j]==sum)
                {
                    i++;
                    j--;
                    cnt++;
                }
                else if(a[i] + a[j] > sum)
                j--;
                else
                i++;
            }
            ans = max(cnt,ans);
        }
        cout<<ans<<endl;
    }
    // system("pause");
}

 

posted @ 2020-09-15 14:21  Wh1te  阅读(154)  评论(0编辑  收藏  举报