Напишите программу или функцию, которая принимает непустой список математических неравенств , использующих оператор less than ( <
). Каждая строка в списке будет иметь вид
[variable] < [variable]
где a [variable]
может быть любой непустой строкой строчных букв az. Как и в обычной математике и программировании, переменные с одинаковыми именами идентичны.
Если положительное целое число может быть присвоено каждой переменной, так что все неравенства удовлетворяются, то выведите или верните список переменных с таким назначением. Каждая строка в этом списке должна иметь форму
[variable] = [positive integer]
и все переменные должны встречаться ровно один раз в любом порядке.
Обратите внимание, что может быть много возможных положительных целочисленных решений для множества неравенств. Любой из них является действительным выводом.
Если нет решений для неравенств, то либо не выводите ничего, либо выводите ложное значение ( решать только вам).
Самый короткий код в байтах побеждает.
Примеры
Если вход был
mouse < cat
mouse < dog
тогда все это будут правильные результаты:
mouse = 1
cat = 2
dog = 2
mouse = 37
cat = 194
dog = 204
mouse = 2
cat = 2000000004
dog = 3
Если вход был
rickon < bran
bran < arya
arya < sansa
sansa < robb
robb < rickon
тогда никакое назначение не возможно, потому что это сводится к rickon < rickon
, таким образом, или нет никакого выхода или ложного выхода.
Еще примеры с решениями:
x < y
x = 90
y = 91
---
p < q
p < q
p = 1
q = 2
---
q < p
q < p
p = 2
q = 1
---
abcdefghijklmnopqrstuvwxyz < abcdefghijklmnopqrstuvwxyzz
abcdefghijklmnopqrstuvwxyz = 123456789
abcdefghijklmnopqrstuvwxyzz = 1234567890
---
pot < spot
pot < spot
pot < spots
pot = 5
spot = 7
spots = 6
---
d < a
d < b
d < c
d < e
d = 1
a = 4
b = 4
c = 5
e = 4
---
aa < aaaaa
a < aa
aaa < aaaa
aa < aaaa
a < aaa
aaaa < aaaaa
aaa < aaaaa
a < aaaaa
aaaa = 4
aa = 2
aaaaa = 5
a = 1
aaa = 3
---
frog < toad
frog < toaster
toad < llama
llama < hippo
raccoon < science
science < toast
toaster < toad
tuna < salmon
hippo < science
toasted < toast
raccoon = 1
frog = 2
toaster = 3
toasted = 4
toad = 5
llama = 6
hippo = 7
science = 8
toast = 9
tuna = 10
salmon = 11
Больше примеров без решений: (разделенных пустыми строками)
z < z
ps < ps
ps < ps
q < p
p < q
p < q
q < p
a < b
b < c
c < a
d < a
d < b
d < c
d < d
abcdefghijklmnopqrstuvwxyz < abcdefghijklmnopqrstuvwxyz
bolero < minuet
minuet < bolero
aa < aaaaa
a < aa
aaa < aaaa
aa < aaaa
aaaaa < aaaa
a < aaa
aaaa < aaaaa
aaa < aaaaa
a < aaaaa
g < c
a < g
b < a
c < a
g < b
a < g
b < a
c < a
g < b
a < g
b < a
c < b
g < c
a < g
b < a
c < b
geobits < geoborts
geobrits < geoborts
geology < geobits
geoborts < geology