以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,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<iostream>
#include<vector>
using namespace std;
int main(){
//  freopen("input.txt","r",stdin);int n;cin>>n;vector<int> v(n+1);for(int i=1;i<=n;i++) scanf("%d",&v[i]);for(int i=1;i<=n-1;i++){for(int j=i+1;j<=n;j++){//i,j是狼人 vector<int> a(n+1, 1);a[i]=a[j]=-1;vector<int> lier;//撒谎的人for(int k=1;k<=n;k++){if(v[k]*a[abs(v[k])]<0) //第k个人说v[k]这个人是狼人/好人,但v[k]不是,则k说谎了lier.push_back(k); }if(lier.size()==2 && a[lier[0]] + a[lier[1]] == 0){printf("%d %d",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分)

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

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

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

  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. notepad php发布网站,谈谈如何把WordPress部署到服务器上
  2. 让bat异常之后不直接关闭窗口的办法.
  3. python弹球小游戏程序_Python基于Tkinter模块实现的弹球小游戏
  4. springboot+swagger传递参数的几种格式
  5. Python教程分享之Python基础知识点梳理
  6. 数据有偏差,照样能学对!20年前就有这么强的算法了?
  7. pb 应用 迁移 linux_塑料包装袋中添加剂迁移到食品和药品中危害健康
  8. 力扣--125验证回文串/680验证回文字符串II
  9. 机器学习知识点查漏补缺(朴素贝叶斯分类)
  10. 《SQL必知必会》学习笔记——第十二课 连结表
  11. Query类常用参数详解
  12. 酉变换 matlab,数字图像处理:原理与实践(MATLAB版)
  13. 【java毕业设计】基于Spring Boot+mysql的线上教学平台系统设计与实现(程序源码)-线上教学平台
  14. 计算机里看不到移动硬盘,我的电脑里看不到移动硬盘怎么处理呢?
  15. python程序设计搜题软件_智慧职教APPPython程序设计答案搜题公众号
  16. 掌握这6大技能体系:黑马程序员java就业班考试题
  17. Revit 插件产品架构梳理
  18. neo4j导入数据之LOAD CSV
  19. 液晶电视服务器无响应时间,夏普液晶电视响应速度慢是咋回事?
  20. python列表的嵌套_Python-嵌套列表list的全面解析

热门文章

  1. ES6新特性_Promise实践练习-多个文件内容读取---JavaScript_ECMAScript_ES6-ES11新特性工作笔记028
  2. ES6新特性_Promise介绍与基本使用---JavaScript_ECMAScript_ES6-ES11新特性工作笔记024
  3. 数据库工作笔记002---新建mysql数据库的时候_对字符集和排序规则的选择
  4. Polyfill工作笔记001---简介
  5. 数据那点事001---集合
  6. PostGreSql工作笔记004---PostGreSql修改密码_windows和linux下修改
  7. android学习笔记---42_服务的生命周期
  8. Java中遍历文件夹的2种方法
  9. python编程(巧用装饰器)
  10. ios html gif 显示,iOS gif图显示问题