View Code of Problem 3686

#include <stdio.h>
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#include<cmath>
#include<stack>
using namespace std;
int p[1000002];
int main() {
	int o;
	cin >> o;
	while (o--) {
		int a, b;
		cin >> a >> b;
		for (int i = 0; i < a; i++) {
			cin >> p[i];
		}
		sort(p, p + a);
		int y=0;
		int last = a - 1;
		int flag = 0;
		while (y < last) {
			if (p[y] + p[last] > b) {
				last--;
			}
			else if (p[y] + p[last] < b) {
				y++;
			}
			else if (p[y] + p[last] == b) {
				cout << "YES" << endl;
				flag = 1;
				break;
			}
		}
		if (flag==0) {
			cout << "NO" << endl;
		}

	}
	return 0;
}

Double click to view unformatted code.


Back to problem 3686