题目:2366
题意:从两个有序列表中寻找是否存在两个数加和等于10000
题解:哈希
AC代码:
#include<iostream>
using namespace std;
#define MAX 80000
#define mid 40000
#define target 10000
int a[MAX] = {0};
int main() {
int n1, n2;
int temp;
cin >> n1;
for (int i = 0; i < n1; i++) {
cin >> temp;
a[temp + mid] = 1;
}
cin >> n2;
for (int i = 0; i < n2; i++)
{
cin >> temp;
if (a[target - temp + mid]) {
cout << "YES" << endl;
return 0;
}
}
cout << "NO" << endl;
return 0;
}