Я решил проблему ниже Проблема двоичной строки в Hackerearth, проблема, которая гласит: «Даны четыре целых числа x, y, a и b. Определите, существует ли двоичная строка, содержащая x 0 и y 1, такая, что общее количество под- последовательности, равные последовательности «01» в ней, а общее количество подпоследовательностей, равных последовательности «10» в ней, равно b ». "со следующим кодом, реконструирующим образцы тестовых случаев:
import sys
s = sys.stdin.read()
for i in s.split('\n'):
string = i.split(' ')
if len(string) != 4:
print('')
else:
x,y,a,b = string
x = int(x)
y = int(y)
a = int(a)
b = int(b)
if (x*y == a+b):
print('Yes')
else:
print('No')
Объяснение, приведенное в редакционной статье, что если x * y == a + b, то существует такая двоичная строка, которая у меня также была разобрался в обратном проектировании тестовых примеров, но я действительно не мог понять, как это условие удовлетворяется.
Один из приведенных примеров - это x, y, a и b равны 3, 2, 4 и 2 соответственно, для какой строки 00110 является допустимой строкой, потому что 3 * 2 = 4 + 2.
Но ** 00110 имеет 01 и 10, как это так, поэтому число 01 не равно "a", а число 10 - нет равно "b". Есть ли лог c или какая-либо другая сторона проблемы, которую я упускаю? **
Вы можете обратиться к актуальной проблеме ссылка подробнее