PAT乙级1089-----狼人杀-简单版 (20分)
1089 狼人杀-简单版 (20分)
输入样例 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
思路:
假设两个狼人,然后判断所有人的话,若恰好有一个狼人一个非狼人说谎,则输出
首次通过代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<stdio.h> 2 3 4 int main(){ 5 int sum; 6 int player[102]; 7 scanf("%d",&sum); 8 for(int i=1;i<=sum;i++) scanf("%d",&player[i]); 9 for(int i=1;i<sum;i++) 10 for(int j=i+1;j<=sum;j++){ 11 int lieg=0,liew=0; 12 for(int k=1;k<=sum;k++){ 13 14 if(player[k]<0&&-player[k]!=i&&-player[k]!=j){ 15 if(k==i||k==j) liew++; 16 else lieg++; 17 } 18 else if(player[k]>0&&(player[k]==i||player[k]==j)){ 19 if(k==i||k==j) liew++; 20 else lieg++; 21 } 22 } 23 if(liew==1&&lieg==1){ 24 printf("%d %d",i,j); 25 return 0; 26 } 27 } 28 29 printf("No Solution") ; 30 return 0; 31 }
参考