PAT 乙级 1089 狼人杀
Posted xidian-mao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT 乙级 1089 狼人杀相关的知识,希望对你有一定的参考价值。
1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N=107; 4 int v[N],p[N]; int n; 5 int ans[5]; int cnt; 6 int main () 7 { 8 cin>>n; 9 for (int i=1;i<=n;i++) { 10 cin>>v[i]; 11 p[i]=1; 12 } 13 // p[i]=-1 表示第i个人是狼人 14 for (int i=1;i<n;i++) 15 for (int j=i+1;j<=n;j++) { 16 p[i]=-1; p[j]=-1; 17 for (int k=1;k<=n;k++) 18 if (p[abs(v[k])]*v[k]<0) { // p[abs(v[k])]*v[k]<0 表示第k个人说谎 19 ans[++cnt]=k; 20 if (cnt>3) 21 break; 22 } 23 if (cnt==2&&p[ans[1]]+p[ans[2]]==0) { // 两个说谎的人只有一个是狼人 24 cout<<i<<" "<<j<<endl; 25 return 0; 26 } 27 p[i]=1; p[j]=1; cnt=0; // 不要忘记初始化 28 } 29 cout<<"No Solution"<<endl; 30 return 0; 31 }
以上是关于PAT 乙级 1089 狼人杀的主要内容,如果未能解决你的问题,请参考以下文章