码迷,mamicode.com
首页 > 其他好文 > 详细

PAT 乙级 1089 狼人杀

时间:2019-02-04 15:27:10      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:mes   pat   col   for   clu   初始   out   表示   乙级   

 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 狼人杀

标签:mes   pat   col   for   clu   初始   out   表示   乙级   

原文地址:https://www.cnblogs.com/xidian-mao/p/10351746.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!