AcWing 1641. 狼人杀-简单版
原题链接
简单
作者:
leo123456
,
2020-08-30 10:03:53
,
所有人可见
,
阅读 516
//分值20分,推理没思路,只能枚举,涨知识了
#include<iostream>
#include<cstring>
using namespace std;
const int N=110;
int n;
int q[N];
int judge(int k,int i,int j) // 如果是假话,返回1;如果是真话,返回0
{
int t=q[k];
if(t>0)
{
if(t==i||t==j) return 1;
return 0;
}
t=-t;
if(t==i||t==j) return 0;
return 1;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>q[i];
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
int s=judge(i,i,j)+judge(j,i,j);
if(s!=1) continue;
s=0;
for(int k=1;k<=n;k++)
s+=judge(k,i,j);
if(s!=2) continue;
cout<<i<<' '<<j<<endl;
return 0;
}
cout<<"No Solution"<<endl;
return 0;
}