ֆհαδoᵂ☄ᴷίʆʆer
Знаток
(292)
3 недели назад
def find_string(A, B):
for i in range(1, 27):
a = i * (i - 1) // 2
b = (i + 1) * i // 2
if a + b == A and a * 26 + b == B:
return 'a' * (i - 1) + 'a' + 'z' * (26 - i)
return -1
A = int(input())
B = int(input())
result = find_string(A, B)
if result == -1:
print(-1)
else:
print(result)
Так, шифром строки
«abaz» по версии Алисы будет 0 + 1 + 0 + 25 = 26 , а по версии Боба он равняется 1 + 2 + 1 + 26 = 30.
Алиса и Боб загадали строку s (длины от 1 до 100000 ) и сообщили вам её шифр, посчитанный обоими способами. Найдите любую строку, которая имеет необходимые значения шифра или сообщите, что такой строки не существует.
Входные данные
В первой строке содержится одно число
A ( 0 ≤ A ≤ 25 ⋅ 100000 ) — шифр строки s по версии Алисы.
Во второй строке содержится одно число
B ( 1 ≤ B ≤ 26 ⋅ 100000 ) — шифр строки по версии Боба.
Выходные данные
Если существует непустая строка, которая имеет необходимые значения шифров, выведите её в отдельной строке. Если существует несколько ответов, выведите любой.
Если же искомой строки не существует, выведите « − 1 » (без кавычек).
код программы на python / с++ пожалуйста