View Code of Problem 3686

#include<iostream>
#include<cstring>
#include<algorithm>
#include<stdio.h>
using namespace std; 
int main(){
	int n;
	cin>>n;
	while(n--){
		int x,money;
		cin>>x>>money;
		int flag=0;
		int a[x];
		for(int i=0;i<x;i++)
		cin>>a[i];
		sort(a,a+x);
		for(int i=0,j=x-1;i<x&&i<j;){
			if(a[i]+a[j]==money){
				flag=1;
				break;
			}else if(a[i]+a[j]>money){
				j--;
			}else if(a[i]+a[j]<money){
				i++;
			}
		}
		if(flag==0)
		cout<<"NO"<<endl;
		if(flag==1)
		cout<<"YES"<<endl;
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 3686