Loading [MathJax]/jax/output/SVG/jax.js

Областная олимпиада по информатике 2013-2014


При обработке изображений часто встречается такая задача, когда нужно изменить размер изображения так, чтобы оно “вписалось” в заданный прямоугольник. То есть исходное изображение уменьшается (или увеличивается) таким образом, что одна из его сторон становится точно равной соответствующей стороне заданного прямоугольника, а вторая сторона подбирается так, чтобы соотношение сторон получившегося изображения было как можно ближе к оригиналу. При этом размеры получившегося изображения должны быть наибольшими возможными, но не должны при этом превышать размеры прямоугольника. Также, все размеры должны быть целыми положительными числами.
Вам заданы размеры исходного изображения и размеры прямоугольника, в который это изображение нужно вписать. Вычислите, какими должны быть размеры вписанного изображения. Учтите, что поворачивать изображение или прямоугольник нельзя!

Входные данные

Входной файл содержит 4 целых числа A,B,C,D (1A,B,C,D109), где A и B — ширина и высота исходного изображения, а C и D — ширина и высота прямоугольника, в который изображение нужно вписать.

Выходные данные

Выведите 2 целых числа: ширину и высоту обработанного изображения.

Примеры:

Вход:
1280 720 640 480
Ответ:
640 360
Вход:
640 480 1280 720
Ответ:
960 720

Оценивание:

В 50% тестов: A,B,C,D ≤ 1000 В 75% тестов: A, B, C, D ≤ 1000000
посмотреть в олимпиаде

Комментарий/решение:

пред. Правка 2   2
5 года 3 месяца назад #

zhezbil

  0
2 года 9 месяца назад #

Сам не писал контест + тут нет кнопки проверки. Надеюсь мое решение верно :)

показать/скрыть код

C++

  0
2 месяца 19 дней назад #

Проверял только на данных тестах и на одном своем, так что не гарантирую правильность.

показать/скрыть код

C++