Este problema é interativo.
Luigi percorre uma fase com blocos em fila. Cada bloco esconde um valor , e os valores estão ordenados de forma estritamente crescente. Luigi pode golpear um bloco para descobrir seu valor, mas, como em toda fase do Luigi, ele só pode avançar para a direita.
As consultas têm duas restrições:
Cada consulta deve ser a uma posição estritamente maior que a da consulta anterior.
Luigi tem uma única vida extra: ele pode reiniciar a fase uma única vez. Ao reiniciar, a consulta seguinte pode ser a qualquer posição e, a partir daí, a restrição anterior volta a valer.
Dado um valor que aparece em algum bloco, ajude Luigi a encontrar sua posição usando no máximo consultas.
A primeira linha contém dois inteiros e (, ), o tamanho do vetor e o valor que você deve localizar. Garante-se que aparece em e que .
Quando determinar a posição, imprima ! p, onde
é a posição em que
se encontra. Como o vetor é estritamente crescente, essa posição é
única.
Este problema é interativo, portanto em alguns momentos é importante que você imprima antes de continuar lendo. Algumas linguagens não imprimem imediatamente ao realizar uma operação de impressão, de modo que é necessário realizar uma operação de flush manualmente:
Python: adicione o parâmetro flush ao imprimir:
print(..., flush=True)
C++: use std::cout << std::flush; depois de
imprimir.
C: use fflush(stdout); depois de imprimir.
Outras linguagens: consulte a documentação.
Linhas recuadas são do árbitro; as demais, do seu programa.
4 5
? 4
14
R
? 1
2
? 2
5
! 2