View Code of Problem 133

#include<iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <sstream>
#include <algorithm>
using namespace std;
int main(){
	int t;
	scanf("%d",&t);
	for(int i=0;i<t;i++){
		int n,x;
		scanf("%d%d",&n,&x);
		int ss[n]={};
		for(int j=0;j<n;j++){
			scanf("%d",&ss[j]);
		}
		sort(ss,ss+n);
		int flag=0;
		int begin=0,end=n-1;
		while(begin<end){
			if(ss[begin]+ss[end]>x){
				end--;
			}
			else if(ss[begin]+ss[end]<x){
				begin++;
			}
			else if(ss[begin]+ss[end]==x){
				flag=1;
				break;
			}
		}
		if(flag)
			printf("YES\n");
		else
			printf("NO\n");
	}
	return 0;
} 

Double click to view unformatted code.


Back to problem 133