#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) 回复
.....
很一般嘛!
回复评论