博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[PAT] 1148 Werewolf - Simple Version (20 分)Java
阅读量:5086 次
发布时间:2019-06-13

本文共 3293 字,大约阅读时间需要 10 分钟。

Werewolf(狼人杀) is a game in which the players are partitioned into two parties: the werewolves and the human beings. Suppose that in a game,

  • player #1 said: "Player #2 is a werewolf.";
  • player #2 said: "Player #3 is a human.";
  • player #3 said: "Player #4 is a werewolf.";
  • player #4 said: "Player #5 is a human."; and
  • player #5 said: "Player #4 is a human.".

Given that there were 2 werewolves among them, at least one but not all the werewolves were lying, and there were exactly 2 liars. Can you point out the werewolves?

Now you are asked to solve a harder version of this problem: given that there were NNN players, with 2 werewolves among them, at least one but not all the werewolves were lying, and there were exactly 2 liars. You are supposed to point out the werewolves.

Input Specification:

Each input file contains one test case. For each case, the first line gives a positive integer NNN (5≤N≤1005 \le N \le 1005N100). Then NNN lines follow and the iii-th line gives the statement of the iii-th player (1≤i≤N1 \le i \le N1iN), which is represented by the index of the player with a positive sign for a human and a negative sign for a werewolf.

Output Specification:

If a solution exists, print in a line in ascending order the indices of the two werewolves. The numbers must be separated by exactly one space with no extra spaces at the beginning or the end of the line. If there are more than one solution, you must output the smallest solution sequence -- that is, for two sequences A=a[1],...,a[M]A = { a[1], ..., a[M] }A=a[1],...,a[M] and B=b[1],...,b[M]B = { b[1], ..., b[M] }B=b[1],...,b[M], if there exists 0≤k<M0 \le k < M0k<M such that a[i]=b[i]a[i]=b[i]a[i]=b[i] (i≤ki \le kik) and a[k+1]<b[k+1]a[k+1]<b[k+1]a[k+1]<b[k+1], then AAA is said to be smaller than BBB. In case there is no solution, simply print No Solution.

Sample Input 1:

5-2+3-4+5+4

Sample Output 1:

1 4

Sample Input 2:

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

Sample Output 2 (the solution is not unique):

1 5

Sample Input 3:

5-2-3-4-5-1

Sample Output 3:

No Solution
1 package pattest; 2  3 import java.util.ArrayList; 4 import java.util.List; 5 import java.util.Scanner; 6  7 /** 8  * @Auther: Xingzheng Wang 9  * @Date: 2019/2/27 21:3410  * @Description: pattest11  * @Version: 1.012  */13 public class PAT1148 {14     public static void main(String[] args) {15         Scanner sc = new Scanner(System.in);16         int n = sc.nextInt();17         int[] v = new int[n + 1];18         for (int i = 1; i <= n; i++)v[i] = sc.nextInt();19         for (int i = 1; i <= n; i++) {20             for (int j = i + 1; j <= n; j++) {21                 List
lie = new ArrayList<>();22 int[] a = new int[n + 1];23 for (int k = 0; k <= n ; k++) {24 a[k] = 1;25 }26 a[i] = a[j] = -1;27 for (int k = 1; k <= n; k++) {28 if (v[k] * a[Math.abs(v[k])] < 0) lie.add(k);29 }30 if (lie.size() == 2 && a[lie.get(0)] + a[lie.get(1)] == 0) {31 System.out.print(i + " " + j);32 return;33 }34 }35 }36 System.out.print("No Solution");37 }38 }

 

转载于:https://www.cnblogs.com/PureJava/p/10498249.html

你可能感兴趣的文章
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>
黑马程序员——2 注释
查看>>
用OGRE1.74搭建游戏框架(三)--加入人物控制和场景
查看>>
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
互联网模式下我们更加应该“专注”
查看>>
myeclipse集成jdk、tomcat8、maven、svn
查看>>
查询消除重复行
查看>>
Win 10 文件浏览器无法打开
查看>>
HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
查看>>
-bash: xx: command not found 在有yum源情况下处理
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>
hiho1079 线段树区间改动离散化
查看>>
【BZOJ 5222】[Lydsy2017省队十连测]怪题
查看>>
第二次作业
查看>>
【input】 失去焦点时 显示默认值 focus blur ★★★★★
查看>>
Java跟Javac,package与import
查看>>