abc C题求救!!!
  • 板块学术版
  • 楼主milk1234
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/3/9 21:49
  • 上次更新2024/3/10 00:14:13
查看原帖
abc C题求救!!!
774110
milk1234楼主2024/3/9 21:49
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;

bool canFormSum(const vector<int> &a, const vector<int> &b, const vector<int> &c, int Xi) {
	unordered_map<int, bool> sumMap;
	for (int ai : a) {
		for (int bi : b) {
			int sum = ai + bi;
			sumMap[sum] = true; // 标记该和已经出现
		}
	}
	for (int ci : c) {
		int complement = Xi - ci;
		if (sumMap.count(complement)) {
			return true; // 如果找到了和ci相加等于Xi的数对,返回true
		}
	}
	return false;
}

int main() {
	int n, m, l, q;
	cin >> n;
	vector<int> a(n);
	for (int i = 0; i < n; ++i)
		cin >> a[i];
	cin >> m;
	vector<int> b(m);
	for (int i = 0; i < m; ++i)
		cin >> b[i];
	cin >> l;
	vector<int> c(l);
	for (int i = 0; i < l; ++i)
		cin >> c[i];
	cin >> q;
	vector<int> x(q);
	for (int i = 0; i < q; ++i)
		cin >> x[i];
	for (int i = 0; i < q; ++i) {
		if (canFormSum(a, b, c, x[i])) {
			cout << "Yes" << endl;
		} else {
			cout << "No" << endl;
		}
	}

	return 0;
}
2024/3/9 21:49
加载中...