Problema
Ver original (inglês)A cada movimento, escolha um retângulo e corte-o completamente, paralelo a um dos lados, formando dois retângulos com lados de comprimento inteiro positivo. Continue até que cada pedaço seja um quadrado. Os quadrados podem ter tamanhos diferentes. Conte os cortes, não os pedaços.
Implemente rectangle_cutting(height, width).
Entrada
height: A altura do retângulo inicial.
width: A largura do retângulo inicial.
Saída
Retorne o número mínimo de cortes.
Restrições
1 ≤ height, width ≤ 500. Rotacionar não altera a resposta.
Exemplos
Entrada:
width = 3
height = 2
Saída esperada:
expected = 2
Entrada:
long long width = 3;
long long height = 2;
Saída esperada:
long long expected = 2;
Entrada:
long width = 3;
long height = 2;
Saída esperada:
long expected = 2;
Explicação
Corte um quadrado de 2 × 2, restando um retângulo de 2 × 1. Mais um corte divide o restante em dois quadrados unitários.
Entrada:
width = 4
height = 4
Saída esperada:
expected = 0
Entrada:
long long width = 4;
long long height = 4;
Saída esperada:
long long expected = 0;
Entrada:
long width = 4;
long height = 4;
Saída esperada:
long expected = 0;
Explicação
O retângulo inicial já é um quadrado.
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.