View Code of Problem 3686

    #include "stdio.h"
    #include "string.h"
    int ss[100005];
    int as[1000005];
    int cs[1000005];
    int main()
    {
    	int n,x,t,i;
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%d%d",&n,&x);
    		memset(as,0,sizeof as);
    		memset(cs,0,sizeof cs);
    		for(i=0;i<n;i++)
    		{
    			scanf("%d",&ss[i]);
    			if(ss[i]>0) as[ss[i]]++;
    			else cs[ss[i]]++;
    		}

    		for( i=0;i<n;i++)
    		{
    			if(x-ss[i]>0)
   			 {
    if(x-ss[i]==ss[i]){
    if(as[ss[i]]>1) break;
    }
    else {
    if(as[x-ss[i]]) break;
    }
    }
    else {
    if(x-ss[i]==ss[i]){
    if(cs[ss[i]]>1) break;
    }
    else {
    if(cs[x-ss[i]]) break;
    }
    }
    }
    if(i<n) printf("YES\n");
    else printf("NO\n");
    }
    return 0;
    }

Double click to view unformatted code.


Back to problem 3686