Как мне решить указанную ниже проблему без обратной инженерии образцов тестовых случаев - PullRequest
0 голосов
/ 08 мая 2020

Я решил проблему ниже Проблема двоичной строки в 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 или какая-либо другая сторона проблемы, которую я упускаю? **

Вы можете обратиться к актуальной проблеме ссылка подробнее

...