这题怎么做啊?求C++代码

狼人杀(wolfkill)

【题目描述】

小强(编号 1)、小旻(编号 2)、小轩(编号 3)和小杰(编号 4)在玩迷你狼人杀,他们每个人有一个身份,身份包括一个预言家、一个狼人和两个村民。 他们每个人都说了一句话。 • 1 号说:a 不是狼人。 • 2 号说:如果 b 和 c 都不是狼人,那么我也不是狼人。 • 3 号说:如果 d 或 e 是预言家,那么我是村民。 • 4 号说:如果 f 不是村民,那么我是村民;否则,我不是村民。 已知预言家是 x,狼人是 y,村民是 z 和 w,求说假话的人的个数。 注意:如果一句话的条件不成立,那么便不可能存在矛盾,因此不算假话。

【输入格式】

从标准输入读入数据。 第一行输入 6 个正整数 a,b,c,d,e, f(均为 1 至 4 之间的整数)。 第二行输入 4 个正整数 x,y,z,w(互不相同,且均为 1 至 4 之间的整数)。

【输出格式】

输出到标准输出。 输出一个整数,为说假话的人的个数。

【样例 1 输入】

2 1 2 3 4 4

1 2 3 4

【样例 1 输出】

2

【样例 1 解释】

根据输入:预言家是 1,狼人是 2,村民是 3 和 4。 • 1 号说:2 不是狼人。这是假话。 • 2 号说:如果 1 和 2 都不是狼人,那么我也不是狼人。由于 2 是狼人,假设的条 件不成立,从而这句话并不存在矛盾,因此不是假话。 • 3 号说:如果 3 或 4 是预言家,那么我是村民。由于 3 与 4 都不是预言家,假 设的条件不成立,从而这句话并不存在矛盾,因此不是假话。 • 4 号说:如果 4 不是村民,那么我是村民;否则,我不是村民。由于 4 是村民, 满足了“否则,我不是村民”的条件,但其结论不成立,因此是假话。 故有 2 个人说了假话。

【样例 2 输入】

1 1 2 1 2 3

3 2 4 1

【样例 2 输出】

0

【样例 2 解释】

根据输入:预言家是 3,狼人是 2,村民是 4 和 1。 • 1 号说:1 不是狼人。这是真话。 • 2 号说:如果 1 和 2 都不是狼人,那么我也不是狼人。由于 2 是狼人,假设的条 件不成立,从而这句话并不存在矛盾,因此不是假话。 • 3 号说:如果 1 或 2 是预言家,那么我是村民。由于 1 与 2 都不是预言家,假 设的条件不成立,从而这句话并不存在矛盾,因此不是假话。 • 4 号说:如果 3 不是村民,那么我是村民;否则,我不是村民。由于 3 不是村民, 满足了第二个条件,而 4 是村民,结论成立,因此不是假话。 故有 0 个人说了假话。

【样例 3 输入】

2 4 3 2 1 1

3 2 4 1

【样例 3 输出】

3

【样例 4 输入】

4 4 3 1 1 1

1 4 2 3

【样例 4 输出】

2

求C++代码,在线等

另外,我用人格担保,回答了正确了肯定是要采纳的

各位大佬求救救

https://blog.csdn.net/krypton12138/article/details/79801924?utm_source=blogxgwz0