View Code of Problem 133

/*数列S中有n个整数,判断S中是否存在两个数A、B,使之和等于X。
第一行为T,输入包括T组测试数据。
每组数据第一行包括两个数字n和X,第二行有n个整数,表示数列S,(1<n<=100000)*/
#include<stdio.h>
#include<math.h>
int main(){
	int t;
	scanf("%d",&t);
	int i,j,mask;
	for(i=0;i<t;i++){
		int n,x;
		scanf("%d %d",&n,&x);
		int a[100000];
		for(j=0;j<n;j++){
			scanf("%d",&a[j]);
		}
		for(i=0;i<n;i++){
			mask=0;
			for(j=i+1;j<n;j++){
				if(a[i]+a[j]==x){
					mask=1;
					break;
				}
			}
			if(mask==1){
				break;
			}
	}
	if(mask==1){
		printf("YES\n");
	}else{
		printf("NO\n");
	}
}
return 0;
}

Double click to view unformatted code.


Back to problem 133