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;
    scanf("%d",&t);
    while(t--)
    {
    scanf("%d%d",&n,&x);
    memset(as,0,sizeof as);
    memset(cs,0,sizeof cs);
    for(int i=0;i<n;i++)
    {
    scanf("%d",&ss[i]);
    if(ss[i]>0) as[ss[i]]++;
    else cs[ss[i]]++;
    }
    int 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