В математической логике существует операция "следует". Обычно, её
обозначают символом "=>". Тогда запись A=>B обозначает "из А следует
B". Обозначает эта операция, что если истинно А, то истинно и B. А вот
если A ложно, то B может быть и ложно и истинно. Только из истины
нельзя получить ложь. Иногда операцию => называют "импликация".
Если истину обозначить 1, а ложь --- 0, то для =>
можно записать все возможные значения выражения A=>B при любых A и B.
A
=>
B
0
1
0
0
1
1
1
0
0
1
1
1
Получилась таблица истинности для операции =>.
Теперь можно вычислять более сложные выражения. Например,
~(A&B)=>C=>AvB. Запишем операции в порядке уменьшения их приоритета:
~, &, v, =>. Для изменения приоритета применяются круглые скобки. Но
это ещё не всё. Нужно знать в каком порядке выполняются действия, если
их приоритеты равны. Для & и v порядок слева направо, а для ~ и =>
справа налево. Это значит, что A&B&C нужно считать как (A&B)&C, а
A=>B=>C --- как A=>(B=>C).
Задача: вычислить значение ~(A&B)=>C=>AvB для заданных A, B и C.
Технические требования
Выдать на экран строку значений ~(A&B)=>C=>AvB для заданных A, B и
C. A, B и C задаются в виде 0 и 1.
На вход подаётся:
строка значений A
строка значений B
строка значений C
Входные данные подаются во входной поток.
Выходные данные выдаются в выходной поток.
Длины строк одинаковы и не более 1000.