View Code of Problem 133

#include <stdio.h>
int main(){
	void sort(int a[],int n);
	int T;
	scanf("%d",&T);
	while(T--){
		int n,X;
		scanf("%d %d",&n,&X);
		int i,j,a[n];
		for(i=0;i<n;i++){
			scanf("%d",&a[i]);
		}
		sort(a,n);
		for(i=0;i<n-1&&a[i]<=X;i++){
			for(j=i+1;j<n&&a[j]<=X;j++){
				if(a[i]+a[j]==X){
					printf("YES\n");
					break;
				}
			}
			if(j<n&&a[j]<=X) break; 
		}
		if(i>=n-1||a[i]>X) printf("NO\n");
	}
	return 0;
}
void sort(int a[],int n){
	int i,j,max,swap;
	for(i=1;i<=n-1;i++){
		max=0;
		for(j=0;j<n-i+1;j++){
			if(a[j]>max) max=j;
		}
		swap=a[max];
		a[max]=a[n-i];
		a[n-i]=swap;
	}
}

Double click to view unformatted code.


Back to problem 133