Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

FEIJOEMG - Feijões

A Companhia ACME acabou de desenvolver seu mais novo produto, Feijões Mágicos\texttrademark, disponíveis em vários tamanhos e cores. Baseado nos custos de desenvolvimento e nas espectativas de vendas, o departamento de finanças estipulou os menores preços pelos quais cada tipo de feijão mágico pode ser vendido.

O CEO da companhia, porém, é um tanto quanto excêntrico. Para cada tipo de feijão, ele decidiu um valor K entre 1 e 10 e decidiu que o preço de venda daquele produto deve possuir exatamente K dígitos distintos em sua representação decimal. Por exemplo, se K=3, preços válidos seriam 102, 753, 3000009003, 76666661. Porém, 888 seria um preço inválido (pois só possui um dígito distinto).

Sua tarefa é agradar tanto ao departamento de finanças quanto ao CEO. Dado um inteiro P que representa o menor preço com o qual um produto pode ser vendido e um inteiro K que representa o número de dígitos distintos que o preço final deve ter, você deve descobrir qual o menor inteiro T que é maior ou igual a P e possui exatamente K dígitos distintos em sua representação decimal.

Entrada

A primeira linha da entrada contém o número de casos de teste. Cada caso de teste é dado em uma linha contendo dois inteiros P (1 ≤ P ≤ 1018) e K (1 ≤ K ≤ 10).

Saída

Para cada caso de teste, imprima uma linha no formato Caso <X>: <T>, onde <X> é o número do caso de teste (sequencial, a partir de 1) e <T> é o menor inteiro que satisfaz tanto ao departamento de finanças quanto ao CEO.

Exemplos

Entrada:
5
36 1
74 2
2 3
997 3
14678 3

Saída:
Caso 1: 44
Caso 2: 74
Caso 3: 102
Caso 4: 1002
Caso 5: 14711

No primeiro caso, números de dois algarismos com apenas um dígito são 11, 22, 33, 44, etc. O menor deles que é maior ou igual a 36 é 44.

No segundo caso, 74 já possui dois digitos distintos, e portanto o valor ideal é ele mesmo.

No terceiro caso, números com 3 dígitos distintos têm necessariamente que ter pelo menos 3 algarismos. O menor com 3 dígitos distintos é 102 (porque 100 e 101 só possuem dois dígitos distintos).

No quarto caso, 997 e 998 possuem apenas 2 dígitos distintos, e 999 apenas 1. Assim, precisamos considerar números de 4 algarismos. O menor deles com 3 algarismos distintos é 1002.


Adicionado por:Wanderley Guimarăes
Data:2012-03-14
Tempo limite:0.100s
Tamanho do fonte:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Linguagem permitida:Todas exceto: ASM64 CLOJURE ERL FSHARP PERL6 PY_NBC SCALA TCL
Origem:Seletiva UFMG 2011

hide comments
2017-07-08 16:27:44
“Deuses são reais se acredita neles”
2017-05-27 18:46:18
Gente em java da pra usar a classe BigInteger, não?
2013-09-22 02:56:04 Kleber Vianna [FATEC/SP]
Que tipo nativo do C aceita 10^18???
Nem definindo como double está dando certo.


Last edit: 2013-09-22 02:57:07
2013-08-28 05:30:37 Alexandre Henrique Afonso Campos
O meu ainda năo deu certo, mas algo que reduziu o tempo de execuçăo do meu código foi redefinir P como min(P,10^K). Assim, ao procurar pelo menos 3 algarismos distintos, ele começa direto no 100. Ao procurar 4, ele começa no 1000, etc.
2012-07-30 14:34:37 chrislucas
Escrevi um algoritmo tăo simples e to tomando TLE,alguém tem uma dica?????
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.