View Code of Problem 3686

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		int t=scanner.nextInt();
		while(t-->0) {
			int n=scanner.nextInt();
			int x=scanner.nextInt();
			int[] m=new int[n];
			for(int i=0;i<n;i++) {
				m[i]=scanner.nextInt();
			}
			boolean flag=false;
			int left=0;
			int right=n-1;
			Arrays.sort(m);
			while(left<right) {
				if(m[left]+m[right]==x) {
					flag=true;
					break;
				}
				if(m[left]+m[right]>x) {
					right--;
				}
				else {
					left++;
				}
			}
			if(flag) {
				System.out.println("YES");
			}
			else {
				System.out.println("NO");
			}
		}
	}

}

Double click to view unformatted code.


Back to problem 3686