Número de Fora
Existe uma lista de números , tal que todos os elementos dessa lista pertencem ao intervalo . Como você pode ver, um dos números desse intervalo está faltando.
Você deve encontrar esse. Para isso, pode-se perguntar o estado do -ésimo bit do número . O número máximo de perguntas é
Interação:
Esse é um problema interativo. Seu programa irá se comunicar com o juiz, usando o dispositivo padrão de entrada e saída.
Primeiro, seu programa lerá um inteiro - o tamanho da lista
Depois disso, seu programa poderá fazer no máximo perguntas. Para fazer uma pergunta, imprima um caractere e então dois inteiros e , o índice na lista do número a ser perguntado e o bit a ser perguntado. Note que os bits começam contar a partir de
O juiz então imprimira um inteiro ou - o valor do -ésimo bit do número
Quando determinar o número de fora, imprima um caractere ! e o número em si. Termine então o seu programa.
Restrições
Exemplo de interação:
ENTRADA |
SAÍDA |
3 0 1 0 |
? 1 1 ? 2 0 ? 3 1 ! 2 |
Nota:
Cada mensagem que seu programa imprimir deve terminar com uma quebra de linha. Além disso, seu programa deve limpar o buffer, para o juiz ler a informação que foi impressa. Isso pode ser feito ao chamar ou em C++, em Java, em C#, em pascal, ou em Python.
Para testar sua solução, clique aqui