View Code of Problem 133

#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 );
		if( arr[0]> X ){
			printf("NO\n");
			break;
		} 
		int flag = 0;
		int low = 0, high = n-1;
		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 133