#include <stdio.h> #include <stdlib.h> int cmp(const void *a, const void *b){ return *(int*)a-*(int*)b; } int main(){ int t,n,x,flag,sum; //输入1:1个整数t,t<30 scanf("%d", &t); while(t--){ flag=0; //输入2:2个整数n与x,n<1000000 scanf("%d %d", &n, &x); int arr[n]; //输入3:n个整数 for(int i=0; i<n; i++) scanf("%d", &arr[i]); //处理 qsort(arr, n, sizeof(int), cmp); for(int i=0,j=n-1; i<j;){ sum = arr[i]+arr[j]; if(sum==x){ flag=1; break; }else if(sum>x){ j--; }else{ i++; } } //输出:1个字符串 if(flag==1) printf("YES\n"); else printf("NO\n"); } } |
Double click to view unformatted code.