Гауссовы целые числа являются комплексными числами вида, a+bi
где a
и b
оба являются целыми числами. В основании -1 + i все гауссовы целые числа могут быть уникально представлены с использованием цифр 0
и 1
без необходимости обозначения знака символом.
Например, 1100
в базе -1 + я представляет десятичное число 2, так как
1*(-1+i)^3 + 1*(-1+i)^2 + 0*(-1+i)^1 + 0*(-1+i)^0
= (2+2i) + (-2i) + 0 + 0
= 2
Входными данными будут два гауссовых целых числа в основании -1 + i, представленные с помощью цифр 01
. Это может принимать одну из следующих форм:
- Две отдельные строки цифр,
- Два десятичных целых числа, состоящие из
01
представления базовых чисел -1 + i (например,1100
для 2 в базовых -1 + i), - Два двоичных целых числа, представляющих базовые числа -1 + i (например, десятичные
12
или0b1100
2 в основании -1 + i) - Одна строка, разделяющая две строки из цифр / двоичные целые числа одним не алфавитно-цифровым разделителем (например,
1100 1100
или12,12
для 2 + 2)
Выведите сумму двух гауссовых целых чисел, также в базе -1 + i и представленных с использованием цифр 01
(в одном из форматов, разрешенных для ввода, не обязательно того же выбора). Вывод может содержать конечное число ведущих нулей.
Ваша функция или программа должны завершиться в течение 2 секунд для входов не более 30 цифр каждый.
Дополнительные разъяснения
- Вы можете предположить, что входные данные не содержат посторонних начальных нулей. Для особого случая 0 вы можете выбрать либо
0
пустую строку, либо как представление.
Контрольные примеры
0, 0 => 0 # 0 + 0 = 0
0, 1 => 1 # 0 + 1 = 1
1, 1 => 1100 # 1 + 1 = 2
1100, 1100 => 111010000 # 2 + 2 = 4
1101, 1101 => 111011100 # 3 + 3 = 6
110111001100, 1110011011100 => 0 # 42 + (-42) = 0
11, 111 => 0 # i + (-i) = 0
11, 110 => 11101 # i + (-1-i) = -1
10101, 11011 => 10010 # (-3-2i) + (-2+3i) = (-5+i)
1010100101, 111101 => 1110100000100 # (-19+2i) + (3-4i) = (-16-2i)
Более длинные тестовые случаи:
11011011010110101110010001001, 111100010100101001001010010101 => 0
111111111111111111111111111111, 111111111111111111111111111111 => 100100100100100100100100100100
101101110111011101110111011101, 101101110111011101110111011101 => 11101001010001000100010001000100011100
100100010101001101010110101010, 100010011101001011111110101000 => 110000110010101100001100111100010
-1+i
в i-1
в названии.