#include<bits/stdc++.h> using namespace std; int main(){ /*小的数,都比两数之和都大,肯定是NO 或者大的数 的两倍都比X小 */ int n; cin>>n; for(int i = 0;i<n;i++){ int x,y; cin>>x>>y; int num[x] = { }; for(int i = 0;i<x;i++)cin>>num[i]; sort(num,num+x); int a = 0,b = x-1,f = 0; while(a<b){ if(num[a] > y || num[b] * 2 < y){ break; } if(num[a] + num[b] < y)a++; else if(num[a] + num[b] > y)b--; else { f = 1; break; } } if(f==0)cout<<"NO"<<endl; else cout<<"YES"<<endl; } return 0; } |
Double click to view unformatted code.