3642 - 选班委
时间限制 : 1 秒
内存限制 : 128 MB
某班要成立一个由4人组成的班委会,候选人有ABCDEFGH8位同学。
班主任征求8位同学的意见。
A说:我和谁都能很好地合作
B说:我愿意和C共事,如果C不当班委,我也不当。
C说:我跟D有矛盾,绝不能跟他一起当班委。
D说:如果H当班委,我希望也能让我当。
E说:我跟谁都可以共事。
F说:如果D当,我希望G也当。如果我和C都当了,我希望D也当。
G说:据我观察,B和C老对着干,他俩在一起啥事也别想干成。所以如果他俩都当,我就不当。另外,我也不愿意和A还有E一起共事。
H说:B和F有一人当,我就当,否则我不当。另外,如果C当,我希望G也当。
如果你是班主任,你会让哪四个人当班委?
题目输入
题目输出
假如ABCD适合当班委,程序应该输出ABCD
输入/输出样例
输入格式
输出格式
C++解答
#include <iostream> using namespace std; int t[9]; void f(int i) { int a,b,c,cnt=0; if(i==8) { a=((t[3]==1&& t[6]==1)||t[3]==0); b=((t[5]+t[2]==2&&t[3]==1)||t[5]+t[2]==1); c=((t[2]==1&&t[6]==1)||t[2]==0); if((t[0]==0)&&(t[4]==0)&&((t[2]==1&&t[1]==0||t[1]==1)||(t[2]==0&&t[1]==0))&&(t[2]!=t[3])&&(t[7]==1||(t[7]==0&&t[3]==0))&&(t[6]==1&&t[1]+t[2]<=1||t[6]==0)&&(t[1]+t[5]>=1&&t[7]==1||t[7]==0)&&a&&b&&c) { cnt=0; for(i=0;i<=7;i++) { if(t[i]==1) cnt++; } if(cnt==4) { for(i=0;i<=7;i++) { if(t[i]==1) cout<<char(i+'A'); } cout<<endl; } } return ; } t[i]=0; f(i+1); t[i]=1; f(i+1); } int main() { f(0); return 0; }