
#include<cstdio> |
#include<cstdlib> |
#include<cmath> |
#include<cstring> |
#include<cctype> |
#include<algorithm> |
#include<iostream> |
using namespace std; |
#define MAXN 1000000+10 |
int k[MAXN],kk[MAXN]; |
int m,n; |
bool cmp(int x,int y) |
{ |
return x<y?true:false; |
} |
bool binary(int x) |
{ |
int start=0,endd=n*n; |
while(endd-start>=1) |
{ |
int mid=(start+endd)/2; |
if(kk[mid]>x) endd=mid-1; |
if(kk[mid]<x) start=mid+1; |
if(kk[mid]==x) return true; |
} |
return false; |
} |
int main() |
{ |
int T; |
scanf("%d",&T); |
while(T--) |
{ |
scanf("%d%d",&n,&m); |
int i,j; |
for(i=0;i<n;i++) scanf("%d",&k[i]); |
for(i=0;i<n;i++) |
{ |
for(j=0;j<n;j++) |
{ |
kk[i*n+j]=k[i]+k[j]; |
} |
} |
sort(kk,kk+n*n,cmp); |
bool flag=false; |
for(i=0;i<n;i++) |
{ |
for(j=0;j<n;j++) |
{ |
// cout<<"***"<<binary(m-k[i]-k[j])<<endl; |
if(binary(m-k[i]-k[j])) flag=true; |
} |
} |
if(flag) printf("Yes\n"); |
else printf("No\n"); |
} |
return 0; |
} |




初级程序员
by: 云代码会员 发表于:2014-01-15 13:43:12 顶(1) | 踩(0) 回复
.....
很一般嘛!
回复评论