View Code of Problem 133

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,X,i,j,a[100000],t,T,flag;
    scanf("%d",&T);
    while(T--)
    {
        flag=0;
    scanf("%d%d",&n,&X);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(a[i]<a[j])
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
    i=(n-1)/2;
    j=i+1;
    while((i>=0)&&(j<n))
    {
        if(a[i]+a[j]==X)
        {
            flag=1;
            break;
        }
        else if(a[i]+a[j]>X)
        {
            i--;
        }
        else if(a[i]+a[j]<X)
        {
            j++;
        }
    }
    if(flag==1)
    {
         printf("YES\n");
    }
    else
    {
         printf("NO\n");
    }

    }
    return 0;
}

Double click to view unformatted code.


Back to problem 133