其他分享
首页 > 其他分享> > 1089 狼人杀-简单版

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