View Code of Problem 133

 #include<stdio.h>
         
        int main()
        {
          int t,n,x,i,j,temp;

          scanf("%d",&t);
          while(t--)
          {
            scanf("%d %d",&n,&x);
			int a[n];
            for(i=0;i<n;i++)
              scanf("%d",&a[i]);
            
            for(i=1;i<n;i++)
            {
              if(a[i]<a[i-1])
              {
                temp=a[i];
                for(j=i-1;a[j]>temp;j--)          
                  a[j+1]=a[j];
                a[j+1]=temp;
              }
            }
              
            i=0;
            j=n-1;
            while(i!=j)
            {
              if(a[i]+a[j]==x)
              {
                printf("YES\n");
                break;
              }
              else if(a[i]+a[j]<x)
                i++;
              else if(a[i]+a[j]>x)
                j--;
            }
            if(i==j)
              printf("NO\n");
          }
          return 0;
        }

Double click to view unformatted code.


Back to problem 133