数据结构测验:组队问题

描述:
组队问题
要求把学生们分为A和B两个小组,人数分别是n和m,每个成员都有一个具体的能力值。 现在打算派出一些队伍参加比赛,每个队伍必须由一名A组成员和一名B组成员组成,且两个成员的能力值之和必须恰好为d。请你计算下,最多可以派出多少支参赛队伍。

输入格式
第一行是三个整数n(1<=n<=1000)、m(1<=m<=1000)和d(1<=d<=100000000),分别表示A组人数,B组人数和要求的d。
第二行是n个整数ai(1<=ai<=100000000),表示A组成员的能力值。
第三行是m个整数bi(1<=bi<=100000000),表示B组成员的能力值。

输出格式
输出一个整数,表示最多可以派出多少支参赛队伍,答案可能为0。

输入样例
5 4 10
1 2 3 4 5
6 6 5 8

输出样例
3

思路:
遍历A组中的所有元素,在哈希表中查找其所需要的另一半(即满足和为d-a[i]的元素)是否存在,
如存在,则匹配成功,答案加1,并将该元素从哈希表删除(因为它不能再被匹配了);
如果不存在,则继续遍历A组的下一个元素。