Ось п’ять зображень груш та сталевого жолоба :
Це лише ескізи, натисніть їх на повний розмір!
(Я зробив це разом з Algodoo .)
Цей клас зображень завжди має такі властивості:
- Вони завжди 400 × 400 пікселів з білим тлом. (Це може бути не зовсім білим, оскільки зображення SE стискаються.)
- У них від 1 до 4 однакових груш, кожна обертається і розташовується (майже) будь-яким способом.
- Вони мають один вертикальний сталевий жолоб, який сягає до нижньої частини зображення.
- За винятком нижньої частини жолоба, жолоби та грушеві обмежувальні коробки ( приклад обмежувальної коробки ) ніколи не торкаються та не виходять за межі зображення.
- Обмежувальні ящики з грушами ніколи не перекриваються одна з одної і не перекривають жолоб.
- Ці груші можуть перебувати під похилій частині жолоби, як і в B , C , і D . (Так обмежувальний ящик жолоба може перекривати обмежувальний ящик груші.)
- Жолоб може мати будь-яке горизонтальне і вертикальне положення до тих пір, поки є достатньо місця для всіх обмежувальних коробок груш, щоб вільно розміщуватися над ним (жодних випадків, коли «ледве вписуються», не буде випробовано), і частина стовпчика видно.
Виклик
Напишіть програму, яка займає таке зображення і виводить ще одне зображення розміром 400 × 400 із жолобом у тому самому місці, але з переставленими грушами, щоб вони опинилися вище жолоба (щоб вони могли потрапити в нього та вийти соком та чого іншого).
Вимоги до вихідного зображення:
- Усі груші на вхідному зображенні повинні бути розміщені таким чином, щоб вони знаходилися над жолобом, між лівим і правим краєм його лійки. (Над краєм не нормально.)
- Кожна груша повинна підтримувати свій кут обертання. (Отже, ви повинні нарізати і вставляти груші, а не перемальовувати їх.)
- Груші не повинні перекриватись і не торкатися один одного чи жолоба. ( Ящики, що обмежують грушу, можуть перекриватися.)
- Груші не повинні торкатися або виходити за межі зображення.
Ось приклади дійсних результатів для п’яти зразків зображень:
Це лише ескізи, натисніть їх на повний розмір!
Зауважте, що вхідне зображення для E вже було дійсним висновком, але перестановка груш, коли це технічно не потрібно, просто добре.
Деталі
- Візьміть ім'я зображення або необроблені дані зображення за допомогою виклику stdin / командного рядка / функції.
- Виведіть зображення у файл із обраним вами іменем або виведіть вихідні дані файлу зображення у stdout або просто виведіть зображення.
- Може використовуватися будь-який загальний формат файлу зображень без втрат.
- Можливо використовувати графіки та бібліотеки зображень.
- Кілька невірних пікселів тут і там (через втрату чи щось) - не велика справа. Якщо я не можу візуально сказати що-небудь не так, це, мабуть, добре.
Виграє найкоротший код у байтах. Tierereaker - це найвище оцінений пост.