1089 狼人杀-简单版 (20分)

以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,1 号玩家说:“2 号是狼人”,2 号玩家说:“3 号是好人”,3 号玩家说:“4 号是狼人”,4 号玩家说:“5 号是好人”,5 号玩家说:“4 号是好人”。已知这 5 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所有狼人都在撒谎。扮演狼人角色的是哪两号玩家?

本题是这个问题的升级版:已知 N 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所有狼人都在撒谎。要求你找出扮演狼人角色的是哪几号玩家?

输入格式:

输入在第一行中给出一个正整数 N(5≤N≤100)。随后 N 行,第 i 行给出第 i 号玩家说的话(1≤i≤N),即一个玩家编号,用正号表示好人,负号表示狼人。

输出格式:

如果有解,在一行中按递增顺序输出 2 个狼人的编号,其间以空格分隔,行首尾不得有多余空格。如果解不唯一,则输出最小序列解 —— 即对于两个序列 A=a[1],...,a[M] 和 B=b[1],...,b[M],若存在 0≤k<M 使得 a[i]=b[i] (i≤k),且 a[k+1]<b[k+1],则称序列 A 小于序列 B。若无解则输出 No Solution

输入样例 1:

5
-2
+3
-4
+5
+4

输出样例 1:

1 4

输入样例 2:

6
+6
+3
+1
-5
-2
+4

输出样例 2(解不唯一):

1 5

输入样例 3:

5
-2
-3
-4
-5
-1

输出样例 3:

No Solution
/*
根据题目描述,有两个狼人,两个人说谎,有狼人说谎但不是所有狼人都说谎,
表示:有一个好人说谎,一个狼人说谎。
那么可以依次假设两个人是狼人,其他人是好人,
所说和假设不同则判断该人说谎
判断假设所得结果是否满足已知条件
*/
#include<stdio.h>
#include<string.h>
#include<math.h>
int main() {
//  freopen("input.txt","r",stdin);int i,n,j,k;scanf("%d",&n);int v[105];//某个人说的话 for(i = 1; i <= n; i++){scanf("%d",&v[i]);}for(i = 1; i <= n; i++){for(j = i + 1; j <= n; j++){int lie[105], a[105];for(k = 0; k < 105; k++){a[k] = 1;//假设所有人都是好人 }a[i] = a[j] = -1;//假设两个人是狼人 int index = 0;for(k = 1; k <= n; k++){if(v[k] * a[abs(v[k])] < 0){//如果k说某个人是坏人,但该人是好人,那么k说谎,// 如果k说某个人是好人,但该人是坏人,那么k说谎lie[index++] = k;}}//有两个人说谎,一个是好人一个是坏人 if(index == 2 && a[lie[0]] + a[lie[1]] == 0){printf("%d %d\n",i,j);return 0;}}}printf("No Solution");return 0;
}

1089 狼人杀-简单版 (20分)相关推荐

  1. 1089 狼人杀-简单版 (20 分)

    1089 狼人杀-简单版 (20 分) 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局"狼人杀"游戏中,1 号玩 ...

  2. 1089 狼人杀-简单版 (20 分)-文字详解版

    1089 狼人杀-简单版 (20 分) 题目 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局"狼人杀"游戏中,1 ...

  3. 【简便解法】1089 狼人杀-简单版 (20分)_25行代码AC

    立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局"狼人 ...

  4. 1089 狼人杀-简单版 (20分)

    以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局"狼人杀"游戏中,1 号玩家说:"2 号是狼人" ...

  5. 【PAT乙级】1089 狼人杀-简单版 (20 分)

    题目地址 #include<cstdio> #include<iostream> #include<vector> using namespace std; int ...

  6. PTA 狼人杀-简单版 (20分)

    "人其实就这一辈子,我想要的生活不是安逸的,虽然很累,但我想要辉煌的人生,所以也一直在为此努力.不松懈.我所理解的辉煌人生,不是挣了多少钱.做了多伟大的事,而是将人生过得有意义,不碌碌无为. ...

  7. PAT (Basic Level) 1089 狼人杀-简单版(20)

    以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局"狼人杀"游戏中,1 号玩家说:"2 号是狼人" ...

  8. C++学习之路 | PTA乙级—— 1089 狼人杀-简单版(精简)

    1089 狼人杀-简单版 (20 分)以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局"狼人杀"游戏中,1 号玩家 ...

  9. 狼人杀c语言代码,1089 狼人杀-简单版——C/C++实现

    题目 1089 狼人杀-简单版 (20 point(s)) 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局"狼人杀&quo ...

最新文章

  1. 华为认证物联网开发利器:小熊派IoT开发板
  2. 【零基础】了解一下前端HTML与CSS
  3. [bzoj1305][CQOI2009]dance跳舞
  4. PyTorch 1.0 中文文档:torch.Storage
  5. commit git 删除文件夹_从Git提交中删除文件
  6. grub4dos初级教程-入门篇(Z)
  7. 数学模型——人口增长模型(基于python)
  8. hiveserver2启动后beeline无法连接:root is not allowed to impersonate hah
  9. MySQL之Explain
  10. java多线程及创建线程
  11. iOS 苹果官方Demo合集
  12. pgsql数据替换替换换行符
  13. 01-oracle账号的注册
  14. 关于基于kangle和EP面板使用CDN
  15. jQuery Mobile使用中遇到的坑!填坑很难,但很有成就感。。
  16. VR消防灭火模拟训练系统
  17. 多图!2020年互联网大厂中秋礼盒PK!阿里走情怀,腾讯更复古,最走心的是......
  18. 复旦大学2018--2019学年第二学期高等代数II期末考试情况分析
  19. Oracle 数据库安装规范--database所在路径和归档目录所在路径必须分开
  20. 【UE4源代码观察】学习队列模板TQueue

热门文章

  1. 卷积及理解图像卷积操作的意义
  2. 月薪10W和月薪1W的人,真实收入差距是100倍 :普通人做到这3点,就能破局
  3. 鸿蒙(HarmonyOS)环境下,如何优雅地进行Http访问
  4. iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
  5. 了解数据中心温度指南
  6. 计算机二进制八进制等怎么表示,八进制用什么字母表示(进制转换计算器)
  7. 企业邮箱网易163购买注意事项
  8. checkbox,radio,selected相关操作
  9. #yyds干货盘点#HC-05与HC-06蓝牙模块对比
  10. 关于IDEA启动Spring Boot项目出现Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletContext at j