Сгибание листовПример не рационального решения задачи. Задача явно на использование div и mod. Но автор задачи усложнил её ненужными циклами с принудительным выходом.
3. Сгибание листов
Входной файл
|
input.txt
|
Выходного файл
|
output.txt
|
Ограничение по
времени:
|
2 секунды
|
Ограничение по
памяти:
|
64 МБ
|
Имеется прямоугольный лист бумаги размерами M×N. Его можно сгибать двумя
способами: пополам по горизонтали или пополам по вертикали. Лист нельзя
вращать.
Необходимо определить, сколько существует различных последовательностей
сгибания листа таких, чтобы получился лист размером m×n.
Формат входных данных
В первой строке входного файла заданы два числа M и N, а во второй — m
и n. Все числа целые, в строке разделяются пробелом. 1 ≤ N,
M ≤ 2000, 1 ≤ n < N,
1 ≤ m < M.
Формат выходных данных
В выходной файл выведите количество вариантов или -1, если
сворачивая по условию невозможно получить лист размерами m×n.
Пример
input.txt
|
output.txt
|
50 12
25 3
|
3
|
var a,b,c,d,e,g,h,i:integer;
begin assign(input, 'input.txt'); reset(input); assign(output, 'output.txt'); rewrite(output); readln(a,b,c,d); for i:=1 to 10000 do begin e:=a div (2*i);h:=h+1; if e=c then break; end; for i:=1 to 10000 do begin g:=b div (2*i); h:=h+1; if g=d then break; end; write(h); close(output); close(input); end.
|