(백 예 프로 그래 밍) 52. 검은색 과 흰색

제목: A, B, C, D, E 다섯 명 이 이마 에 검은색 이나 흰색 종 이 를 붙 였 다.다섯 명 이 마주 앉 으 면 다른 사람의 이마 에 있 는 종이 색깔 을 볼 수 있다.다섯 사람 이 서로 관찰 한 후,
A: "세 사람 이 이마 에 흰 종 이 를 붙 이 고 한 사람 이 이마 에 검 은 종 이 를 붙 이 는 것 을 봤 어 요."
B: "다른 네 명의 이마 에 붙 인 것 이 모두 검 은 종이 인 것 을 봤 어 요."
C: "나 는 한 사람의 이마 에 흰 종이 가 붙 어 있 는 것 을 보 았 다. 다른 세 사람의 이마 에 검 은 종이 가 붙 어 있 는 것 을 보 았 다."
D. "네 사람의 이마 에 흰 종이 가 붙 어 있 는 것 을 봤 어 요."
E 는 아무 말 도 안 했 어 요.
이마 에 검 은 종 이 를 붙 인 사람 이 하 는 말 은 모두 거짓말 이 고 이마 에 흰 종 이 를 붙 인 사람 이 하 는 말 은 모두 진실 이다.이 다섯 명 은 누구의 이마 에 흰 종이 가 붙 었 고 누구의 이마 에 검 은 종이 가 붙 었 느 냐 고 물 었 다.
/*  : A、B、C、D、E  ,               。
    ,                  。       ,
A :“              ,          。”
B :“                。”
C :“             ,            。”
D :“              。”
E     。
                  ,             。
            ,        ?
*/
//by as1138 2011-04-15

#include <iostream>
using namespace std;

int main(void)
{
	int a,b,c,d,e;
	for(a=1;a>=0;--a)
	 for(b=1;b>=0;--b)
	  for(c=1;c>=0;--c)
	   for(d=1;d>=0;--d)
		for(e=1;e>=0;--e)
			if (((a&&b+c+d+e==3)||(!a&&b+c+d+e!=3))&&
				((b&&a+c+d+e==0)||(!b&&a+c+d+e!=0))&&
				((c&&a+b+d+e==1)||(!c&&a+b+d+e!=1))&&
				((d&&a+b+c+e==4)||(!d&&a+b+c+e!=4))
				)
			{
				if(a)
					cout<<"A     !"<<endl;
				else
					cout<<"A     !"<<endl;

				if(b)
					cout<<"B     !"<<endl;
				else
				    cout<<"B     !"<<endl; 

				if(c)
					cout<<"C     !"<<endl;
				else
				    cout<<"C     !"<<endl;

				if(d)
					cout<<"D     !"<<endl;
				else
				    cout<<"D     !"<<endl;

				if(e)
					cout<<"E     !"<<endl;
				else
				    cout<<"E     !"<<endl;
			}
			return 0;
}

좋은 웹페이지 즐겨찾기