Ответ:
m,n = map(int,input().split())
ss = ''
s0 = ''
for i in range(n-3):
ss += ' '
for i in range(n):
s0 += '0'
print(s0)
for i in range(m-2):
print('0', end='')
print(ss, end=' ')
print('0')
print(s0)
Объяснение:
Тут нужно объяснить: каждое слово представляет собой некоторое непустое множество документов, а значки "I" и "&" означают следующее:
I -это объединение двух множеств,
& -это пересечение двух множеств.
Еще возможны скобки, которые, как и обычной арифметике, указывают порядок действий.
Отношения больше или меньше - это вложенность множеств друг в друга (то есть одно из множеств является подмножеством другого), это не всегда выполняется, но в данном случае выполняется.
Самое большое множество это второе, потом первое - его подмножество, затем третье - подмножество первого, а четвертое - подмножество третьего. В порядке возрастания количества документов - это 4) 3) 1) 2).
Может что не ясно?
| -это логическое "ИЛИ",
& -это логическое "И".
Переводим в двоичную систему счисления
592 / 2 = 296 | 0 в остатке
296 / 2 = 148 | 0
148 / 2 = 74 | 0
74 / 2 = 37 | 0
37 / 2 = 18 | 1
18 / 2 = 9 | 0
9 / 2 = 4 | 1
4 / 2 = 2 | 0
2 / 2 = 1 | 0
1
затем, пишем нули и единицы снизу-вверх
1001010000
и приписываем недостающие нули
0000 0010 0101 0000 (32 бита)
так же это число не является отрицательным,
поэтому вычислять дополнительный
(или обратный код) не нужно
Ответ: 0000001001010000