//某任务需要在A、B、C、D、E着5人中物色人员去完成,但派人受限于下列条件:
//(1)若A去,则B跟去(2)D、E两人中必有人去(3)B,C两人中必有人去,但只去一人
//(4)C,D两人要么都去,要么都不去(5)若E去,则A,B都去
#include<iostream>
using namespace std;
void print(int n);
void main(){
    for(int i=0;i<32;i++){
      if(i>>4 && !((i & 8) ))continue;
      if(!((i&2) ) &&!(i&1)) continue;
      if( (i&8)>>3  == (i&4)>>2   ) continue;
      if( (i&4)>>2  != (i&2)>>1  )  continue;
      if( (i&1) && !( (i>>4)&& (i&8)   ) ) continue;
      print(i);
    }
}
void print(int n)
{
  cout<<(n&16?"A":"~A")<<" "
        <<(n&8 ?"B":"~B")<<" "
        <<(n&4?"C":"~C")<<" "
        <<(n&2?"D":"~D")<<" "
        <<(n&1?"E":"~E")<<" "
        <<endl;

}

posted on 2013-02-23 15:45  叶城宇  阅读(144)  评论(0编辑  收藏  举报