#include <stdio.h>
#include <stdlib.h>
/*
Логическая задача
A - оля приедет
B - Ксюша приедет
C - Настя приедет
D - Маша приедет
Если Оля и Ксюша приедет, то Настя не приедет
Если Ксюша не приедет, то приедет Настя и Маша
Наста приедет
операция импликация (если А то В)
~A || B
*/
int Not(int a) { return a==0?1:0;}
int To(int a, int b){ return (Not(a) || b)!=0; }
int A(int d) { return (d & (1<<0))!=0; }
int B(int d) { return (d & (1<<1))!=0; }
int C(int d) { return (d & (1<<2))!=0; }
int D(int d) { return (d & (1<<3))!=0; }
int Usloviye(int d){
return (To(A(d)||B(d), Not(C(d))) &&
To(Not(B(d)), C(d)&&D(d)) &&
C(d)) != 0;
}
int main(){
int d;
for(d=0;d<16;d++){
if(Usloviye(d)){
if(A(d)) puts("A");
if(B(d)) puts("B");
if(C(d)) puts("C");
if(D(d)) puts("D");
if(1) puts("---");
}
}
return 0;
}
