View Code of Problem 3686

#include <stdio.h>
#include <algorithm>
using namespace std;
int main(){
	int T;
	int n,x;
	scanf("%d", &T );
	while( T-- ){
		scanf("%d %d", &n, &x );
		int arr[n];
		for( int i=0; i<n; i++ ){
			scanf("%d", &arr[i]);
		}
		sort(arr,arr+n);
		int low = 0; int high = n-1;
		int flag = 0;
		while( low<high ){
			if( arr[low]+arr[high] < x ) low++;
			else if( arr[low]+arr[high] >x ) high--;
			else{
				flag = 1;
				break;
			}
		}
		if( flag == 1 ) printf("YES\n");
		else printf("NO\n");
	}

	return 0;
	
}

Double click to view unformatted code.


Back to problem 3686