Jogo Mortal
Esse é um problema interativo, caso não saiba como realizar interações com o sistema leia o guia de problemas interativos do NOIC.
Enzo Dantas andou se metendo com as pessoas erradas e agora foi parar em um jogo macabro onde você precisa ganhar de outras pessoas em jogos para conseguir escapar e se livrar das suas dívidas. Felizmente, Enzo é muito bom em atividades físicas e conseguiu sobreviver até agora, porém o último jogo é um pouco mais complexo, sendo uma única partida entre dois jogadores, Enzo e Ortsac, seu maior inimigo. O jogo começa com um inteiro positivo $$n$$, com os jogadores tomando turnos. Em cada turno as seguintes ações acontecem:
- O jogador que tem o inteiro $$p$$ quebra ele em dois inteiros $$p_1$$ e $$p_2$$, onde $$0 < p_1, p_2 < p$$ e $$p_1 \oplus p_2 = p$$. Aqui $$\oplus$$ se refere a operação de XOR bitwise.
- Caso não existam quaisquer $$p_1, p_2$$ válidos, o jogador perde.
- Se não, o oponente escolhe entre o inteiro $$p_1$$ ou $$p_2$$.
- O jogo continua com o oponente agora tentando “quebrar” o inteiro escolhido.
Como Enzo foi muito comportado em todas as fases anteriores, o dono do jogo deixa ele escolher após mostrar o inteiro $$n$$ se ele quer ser o primeiro ou o segundo a jogar. Seu objetivo como Enzo é ganhar o jogo, você pode executar no máximo 63 operações de quebra. O sistema vai agir como Ortsac.
Entrada
Cada entrada contém múltiplos casos de teste. A primeira linha do input contém um inteiro $$t$$ ($$1 \leq t \leq 1000$$), o número de casos de teste.
A única linha de cada caso de teste contém um inteiro $$n$$ ($$1 \leq n \leq 10^{18}$$), o número no qual o jogo começa.
Interação
Para cada caso de teste, a interação começa lendo o inteiro $$n$$.
Após ler $$n$$, imprima uma única linha contendo first ou second, caso queira ser o primeiro ou o segundo à jogar, respectivamente.
No turno de Enzo, você deve imprimir dois inteiros $$p_1$$ e $$p_2$$ tal que $$0 < p_1, p_2 < p$$ e $$p_1 \oplus p_2 = p$$. Aqui $$p$$ é um dos dois inteiros impressos por Ortsac no turno anterior. Se não houve turno anterior, $$p$$ é igual à $$n$$. Se Enzo não conseguir realizar essa operação imprima 0 0 para receber o veredito de Wrong Answer.
No turno de Ortsac, você deve ler dois inteiros $$p_1$$ e $$p_2$$ tal que $$0 < p_1, p_2 < p$$ e $$p_1 \oplus p_2 = p$$. Aqui $$p$$ é um dos dois inteiros impressos por Enzo no turno anterior. Se não houve turno anterior, $$p$$ é igual à $$n$$. Se Ortsac não conseguir realizar essa operação $$p_1 = p_2 = 0$$, nesse caso siga para o próximo caso de teste.
Se qualquer operação realizada por Enzo for inválida, ou ele realizar mais de 63 operações, o sistema vai imprimir -1 -1, e ao receber isso você deve parar a execução do programa para receber o veredito de Wrong Answer.
Depois de imprimir uma interação não esqueça de imprimir uma quebra de linha e dar flush no output. Caso contrário você vai receber o veredito de Idleness limit exceeded. Para mais instruções leia o guia de problemas interativos.
Exemplo
| Entrada | Saída |
4 1 0 0 3 0 0 13 3 4 0 0 777777770001 0 0 |
second first 2 1 first 10 7 1 2 first 777777770000 1 |
Para submeter o problema clique neste link.
