HM125 人员比对

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
通过率
?
上传者