View Code of Problem 3686

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
	int t;
	cin >> t;
	while (t--) {
		int n, money,flag=0;
		cin >> n >> money;
		vector<int> gf;
		for (int i = 0; i < n; i++)
		{
			int temp;
			cin >> temp;
			gf.push_back(temp);
		}
		sort(gf.begin(), gf.end());
		int p = 0, q = gf.size()-1;
		while (p < q) {
			if (gf[p] + gf[q] == money) {
				cout << "Yes";
				flag = 1;
				break;
			}
			else if (gf[p] + gf[q] > money) {
				q--;
			}
			else {
				p++;
			}
		}
		if (flag == 0)cout << "No";
		if (t != 0)cout << endl;

	}
}

Double click to view unformatted code.


Back to problem 3686