В программировании иногда требуется тестировать и отлаживать уже существующий программный код. Представьте себе, что ваш коллега передал вам написанный им фрагмент кода, так как должен заняться разработкой другой программы.
Вот этот фрагмент кода — процедура с двумя параметрами:
Pascal
procedure P(x, y: integer);
var
i, j: integer;
begin
if (x > 0) and (y > 0) then
begin
for i := 1 to x + y do
begin
y := x * x + y;
x := x * x + y;
y := round(sqrt(x + (y / abs(y)) * (-abs(y))));
for j := 1 to 2 * y do
x := x - y;
end;
end;
writeln(x, ' ', y);
end;
C++
void P(int x, int y)
{
if (x > 0 && y > 0)
{
for (int i = 0; i < x + y; i++)
{
y = x * x + y;
x = x * x + y;
y = sqrt(x + y / abs(y) * -abs(y));
for (int j = 0; j < 2 * y; j++)
x -= y;
}
}
printf("%d %d\n", x, y);
}
Python
def P(x: int, y: int):
if x > 0 and y > 0:
for i in range(x + y):
y = x * x + y
x = x * x + y
y = math.floor(math.sqrt(x + y / abs(y) * -abs(y)))
for j in range(2 * y):
x -= y
print(x, y)
Ваша задача несколько необычна: для отладки этой процедуры
необходимо разработать программу, которая по данным, выведенным на экран, восстановит
входные параметры процедуры. Гарантируется, что во время работы процедуры ни одна
из переменных не выходила за пределы своего типа.
Исходные данные
В единственной строке записаны целые числа x и y, выведенные на экран в конце работы процедуры (−32000 ≤ x, y ≤ 32000).
Результат
Выведите целые числа x и y, которые были поданы процедуре на вход.
Пример
исходные данные | результат |
---|
1 1
| 1 1
|
Автор задачи: Анатолий Углов
Источник задачи: USU Open Collegiate Programming Contest October'2002 Junior Session