以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,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. R中的概率分布函数及可视化
  2. MPLS 企业组网有哪些特性?——Vecloud
  3. Python中面向对象的讲解(3)
  4. java将字符串转换成可执行代码
  5. Visual Studio的工程结构解析
  6. Jetty 和tomcat 比较研究初探
  7. C#导入导出Excele数据
  8. Yii2中使用自定义的数据库
  9. spss因子分析结果解读_因子分析巴特利特球形度检验结果解读
  10. ArcGIS入门 (一)
  11. 2022-03-09:我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字。 你来猜我选了哪个数字。 如果你猜到正确的数字,就会 赢得游戏 。 如果你猜错了,那么我会告诉你,我选
  12. Horizon 桌面用户会话10h后超时断开
  13. 程序员薪酬待遇大调查:学哪种语言的最赚钱?
  14. 如何在CSDN删除自己上传的资源
  15. matlab dcgain,MATLAB实现控制系统的时域分析
  16. Android画图demo
  17. 那些年,我们用过的地图下载器
  18. 说一说你的职业规划是怎样的呢?说说未来一年、三年、五年的职业规划
  19. win10安装opcenum_Win10安装会遇到的问题汇总及解决方法
  20. udp丢包 又是udp丢包

热门文章

  1. ES8新特性_ES8中对象方法的扩展---JavaScript_ECMAScript_ES6-ES11新特性工作笔记052
  2. Netty工作笔记0017---Channel和Buffer梳理
  3. Linux工作笔记029---Centos7.3 服务器下查看tomcat服务是否启动,重启,查看错误日志等基本操作
  4. Linux工作笔记026---Centos7.3 yum提示Another app is currently holding the yum lock; waiting for it to exit.
  5. 杭电4510为什么时光不能倒流
  6. uniapp跨域两次请求解决方案
  7. 2015-12-02 定时自动执行存储过程
  8. 【单片机基础篇】三极管
  9. java防御性编程_代码防御性编程的十条技巧
  10. 3d激光雷达开发(从halcon看点云pcl库)