HM125 人员比对
HM125 人员比对
来源: 第 125 集 类和对象-C++运算符重载-关系运算符重载
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
内置整数可以直接用 ==、!= 比较。两个自定义类型的对象则不行:编译器不知道“相等”该看哪些字段。
请定义人员类型 Person,每人有姓名(字符串)和年龄(整数)。用构造函数写入这两个字段。再重载两个关系运算符(均作为成员函数,参数用人员的引用):
operator==:当且仅当双方姓名相同**并且**年龄相同,返回true,否则返回false。operator!=:判断规则必须与==相反——双方姓名与年龄都相同时返回false,否则返回true。
同一对人员用 == 与用 != 得到的结论必须一致:要么都判定为同一人,要么都判定为不同人,不能一个说相等、另一个也说相等。
读入若干人员档案和若干组比对询问。对每一组询问,分别输出 == 与 != 的布尔结果(真输出 1,假输出 0)。同一对人员的两个结果必须互补。
输入格式
第一行两个整数 \(n\)、\(q\)(\(1 \le n \le 1000\),\(1 \le q \le 1000\)),表示人员数量和询问数量。
接下来 \(n\) 行,第 \(i\) 行是第 \(i\) 个人的姓名 \(s_i\) 和年龄 \(a_i\)(姓名由大小写字母组成,长度 \(1 \sim 20\);\(1 \le a_i \le 120\))。人员编号从 \(1\) 开始。
接下来 \(q\) 行,每行两个整数 \(i\)、\(j\)(\(1 \le i,j \le n\)),表示比较第 \(i\) 个人和第 \(j\) 个人。允许 \(i=j\)(自己和自己比)。
输出格式
对每组询问输出一行,两个整数,用单个空格隔开:
- 第一个数:
p_i == p_j的结果,真为1,假为0 - 第二个数:
p_i != p_j的结果,真为1,假为0
行末换行。相等的一对一定是 1 0,不相等的一对一定是 0 1。
样例
输入 #1
3 3
Tom 18
Tom 18
Jerry 18
1 2
1 3
2 3
输出 #1
1 0
0 1
0 1
输入 #2
2 2
Tom 18
Tom 19
1 2
1 1
输出 #2
0 1
1 0
说明
- 仅姓名相同或仅年龄相同都不够,必须两个字段同时相同才算相等。
!=不是另写一套无关规则,它必须是==的逻辑反。- 样例 #1:前两人同名同龄,第三人只是同龄但改了名字。
- 样例 #2:同名不同龄不相等;自己和自己一定相等。
信息
- ID
- 1124
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者