View Code of Problem 133

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main(){
    int t;
    cin>>t;
    while(t--){
        int n,x,a[100010],flag=0;
        cin>>n>>x;
        for(int i=0;i<n;i++)
            cin>>a[i];
        sort(a,a+n);
        int i=0,j=n-1;
        while(i<j){
            if(a[i]+a[j]>x)
                j--;
            else if(a[i]+a[j]<x)
                i++;
            else if(a[i]+a[j]==x){
                flag=1;
                break;
            }
        }
        if(flag==1)
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 133