//某任务需要在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++){
      bool A=i&16,B=i&8,C=i&4,D=i&2,E=i&1;
      if(A && !B) continue;
      if(!D && !E)continue;
      if(B == C)    continue;
      if(C != D)      continue;
      if(E && !(A && B))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:44  叶城宇  阅读(256)  评论(1编辑  收藏  举报