Informática - Nível Intermediário - Semana 5

Teste de Dobramento

Arnaldo acabou de comprar um novo celular. Infelizmente, no primeiro dia com seu celular, percebeu que ele entortou. Para isso nunca mais acontecer com ele, Arnaldo decidiu criar seu próprio telefone.

Para verificar que seu celular de fato não iria dobrar, ele criou um dispositivo de teste de pressão, que aplica um certo valor de pressão no celular.

Esse dispositivo tem m valores de pressão: 1, 2, 3, ..., m. Se o telefone dobra com um valor x, ele não pode mais ser testado, e para todos os valores de pressão \geq x, o telefone também irá dobrar. Dados p, o número de protótipos do celular, todos idênticos, e m, a quantidade de valores de pressão, determine o o número mínimo, no pior cenário, de testes que precisarão ser aplicados.

Por exemplo, se m = 100 e Arnaldo tem um protótipo (p = 1), no pior cenário, serão necessários 100 testes, testando de 1 à 100 na sequência. Porém, se Arnaldo tiver 2 protótipos, e testar com a pressão x, e o telefone dobrar, no pior caso, ele ainda terá x - 1 testes, no pior caso. Porém, se não dobrar, ele reduziu o problema para testes de x + 1 até 100.

Entrada

A primeira linha de entrada contem um inteiro, C, o número de casos de testes. As C linhas seguintes representam os casos de testes, cada uma com dois inteiros: p e m.

Saída

Seu programa deve imprimir uma linha para cada caso de teste, seguindo o seguinte formato: "Case c: v", onde c representa o número do caso de teste (contando a partir de 1) e v o número mínimo de testes no pior cenário.

Restrições:

  • 1 \leq C \leq 1000
  • 1 \leq m \leq 1000
  • 1 \leq p \leq 50

Exemplo:

ENTRADA

SAÍDA

4
2 10
2 100
2 300
25 900
Case 1: 4
Case 2: 14
Case 3: 24
Case 4: 10

Link para submeter sua solução.