1089 狼人杀-简单版
作者:互联网
思路
把谁是狼人、谁撒谎的所有可能性全部遍历一遍,
代码
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[101];
int b[101];
int c[101];
int main()
{
for(int i=0;i<101;i++){
b[i]=1;
}
int n;
int f=1;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
c[i]=a[i];
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
b[i]=-1;
b[j]=-1;
for(int m=0;m<2;m++){
if(m==0){
c[i]*=-1;
}
else if(m==1){
c[j]*=-1;
}
for(int m2=0;m2<n;m2++){
if(m2==i||m2==j){
continue;
}
else{
c[m2]*=-1;
f=1;
for(int m3=0;m3<n;m3++){
if((c[m3]/abs(c[m3]))!=b[abs(c[m3])-1]){
f=0;
break;
}
}
if(f==0){
c[m2]*=-1;
}
else{
cout<<i+1<<" "<<j+1;
return 0;
}
}
}
if(m==0){
c[i]*=-1;
}
else if(m==1){
c[j]*=-1;
}
}
b[i]=1;
b[j]=1;
}
}
cout<<"No Solution";
return 0;
}
标签:std,main,101,int,狼人,1089,简单,include 来源: https://www.cnblogs.com/wodeblog1982/p/16487146.html