View Code of Problem 3686

#include<iostream>
#include<string>
#include<cstring>
#include<vector>
#include<iomanip>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;

int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		vector<int>a;
		int n, x;
		cin >> n >> x;
		int m = n;
		while (m--)
		{
			int z;
			cin >> z;
			a.push_back(z);
		}
		sort(a.begin(), a.end());
		int low = 0, high = n - 1;
		while (low < high&&high < n&&low >= 0)
		{
			if (a[low] + a[high] > x)
				high--;
			else if (a[low] + a[high] < x)
				low++;
			else
			{
				cout << "YES" << endl;
				break;
			}
		}
		if (low >= high)
			cout << "NO" << endl;
		a.clear();
	}
	
	return 0;
}

Double click to view unformatted code.


Back to problem 3686