【1148】Werewolf - Simple Version (20分)
【摘要】
#include<iostream>#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#include<algorithm> #include<map>#inclu...
-
#include<iostream>
-
#include<stdio.h>
-
#include<stdlib.h>
-
#include<math.h>
-
#include<string.h>
-
#include<algorithm>
-
#include<map>
-
#include<vector>
-
#include<queue>
-
#include<cmath>
-
using namespace std;
-
//狼人杀,假设i和j为狼人, v[k] * a[abs(v[k])] <0即"说谎"
-
//条件:撒谎数组lie有两人且1狼1人
-
-
int main(){
-
int n;
-
cin >>n;
-
vector<int>v(n+1);
-
for(int i=1;i<=n;i++) cin>>v[i];//保存每个人说的话
-
for(int i=1;i<=n;i++){
-
for(int j=i+1;j<=n;j++){
-
vector<int>lie,a(n+1,1);//a都赋值为1
-
a[i]=a[j]=-1;//假设i和j两人为狼人
-
//a数组表示该人是好人(1)还是狼人(-1)
-
for(int k=1;k<=n;k++)
-
if(v[k]*a[abs(v[k])] <0) lie.push_back(k);
-
//k说的话和真实情况不同,即表示k说谎,将k放入lie数组
-
if(lie.size() ==2&&a[lie[0]]+a[lie[1]]==0){
-
//说谎人数为2且一人好人一人为狼人即满足条件
-
cout<<i<<" "<<j;
-
system("pause");
-
return 0;
-
}
-
}
-
}
-
cout<<"No Solution";
-
system("pause");
-
return 0;
-
}
文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。
原文链接:andyguo.blog.csdn.net/article/details/103851778
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)