В чем разница между двумя решениями (Python)

Есть два решения, на мой взгляд, они оба правильные, может я что-то упускаю. Даже если во 2 решении в if поменять оператор and на оператор <, то решение перестает быть верным.

1 решение:

f = input()
s = input()
th = input()

if f < s and f < th:
    print(f)
elif s < f and s < th:
    print(s)
else:
    print(th)

2 решение:

f = input()
s = input()
th = input()

if f < s < th:
    print(f)
elif s < f and s < th:
    print(s)
else:
    print(th)

Задача отсюда.

2.2 Условный оператор № I

Условие задачи задача


Ответы (2 шт):

Автор решения: Grundy

В первом решении проверяется соотношение между целевой переменной (например f) и оставшимися

Во втором - указывается явный порядок для всех трех переменных f < s < th: - однако данное выражение будет неверно в случае f < th < s: - хотя f останется минимальным элементом.

→ Ссылка
Автор решения: MarianD
  • Выражение  а < b and b < c  значит вот что:

    введите сюда описание изображения

    Тогда очередность всех элементов полностью определенна, и мы можем вместо этого выражения спокойно использовать тоже а < b < c.

     

  • Но в случае a < b1 and a < b2
    (я намеренно здесь использовал b1 и b2, а не b и c, чтобы подчеркнуть разницу),

    очередность между b1 и b2 неопределенна (b1 < b2 или b1 > b2?):

    введите сюда описание изображения

    Потому мы не можем писать ни  а < b1 < b2, ни  а < b2 < b1.

     

    Но в этом случае мы можем вместо a < b1 and a < b2 применить a < min(b1, b2).

→ Ссылка