Пусть \( x \) — количество яблок, а \( y \) — количество груш в корзине. Из условия нам известно, что:
- \( x + y = 30 \) (всего фруктов 30).
- Среди любых 12 фруктов хотя бы одно яблоко. Это значит, что если бы все 12 фруктов были грушами, то у нас было бы не менее 12 груш, следовательно \( y < 12 \).
- Среди любых 20 фруктов хотя бы одна груша. Это значит, что если бы все 20 фруктов были яблоками, то у нас было бы не менее 20 яблок, следовательно \( x < 20 \).
Теперь мы можем выразить \( y \):
\[ y < 12 \implies y \leq 11 \]
И выразим \( x \):
\[ x < 20 \implies x \leq 19 \]
Теперь мы знаем, что \( x + y = 30 \) и подставим границы:
Если \( y \leq 11 \), то \( x \) будет:
\[ x = 30 - y \geq 30 - 11 = 19 \]
Но \( x \) не может быть больше 19, это создаёт противоречие. Поэтому попробуем взять \( y = 11 \).
Если \( y = 11 \):
\[ x = 30 - 11 = 19 \]
Теперь проверяем условия:
- В корзине 19 яблок и 11 груш, всего 30 фруктов. Условие выполнимо.
- Среди любых 12 фруктов будет хотя бы одно яблоко, так как максимум 11 фруктов могут быть грушами.
- Среди любых 20 фруктов будет хотя бы одна груша, так как максимум 19 фруктов могут быть яблоками.
Оба условия выполняются.
Таким образом, в корзине лежало:
\[ \boxed{19} \text{ яблок} \]