O isolamento numérico é um problema recorrente na sociedade moderna. São vários os números que se encontram sozinhos e procuram companhia. Como tal, a Associação Portuguesa de Inteiros está a tentar combater este flagelo ao formar casais de números inteiros. Há exatamente N inteiros solitários no país, onde N é um número par. São eles os números de 1 a N. A API quer juntar os números em casais compatíveis e para isso precisa da tua ajuda. A compatibilidade de inteiros é uma ciência ainda pouco estudada, por isso a API tem duas estratégias pensadas.
Alguns estudos parecem indicar que se dois inteiros a e b forem tais que a sua soma é uma unidade menos que uma potência de dois, ou seja, que a + b = 2i - 1, para algum i inteiro e positivo, então a e b formam um casal compatível. Como tal, o objetivo será emparelhar cada um dos N inteiros de forma a que a soma de cada par siga este formato.
Se N = 8, ou seja, temos de considerar os números 1, 2, 3, 4, 5, 6, 7 e 8, então o seguinte emparelhamento é válido:
Notem que há vários emparelhamentos válidos, só têm de encontrar um.
São garantidos os seguintes limites em todos os casos de teste desta parte que irão ser colocados ao programa:
1 ≤ N ≤ 105 | Número de inteiros |
Os casos de teste desta parte do problema estão organizados em 3 grupos com restrições adicionais diferentes:
Grupo | Número de Pontos | Restrições adicionais |
---|---|---|
1 | 10 | N ≤ 10 |
2 | 20 | N ≤ 1 000 |
3 | 20 |
Um outro estudo (muito controverso!) parece indicar que se dois inteiros a e b forem tais que a sua soma é um número primo, ou seja, que a + b = p, para algum primo p, então a e b formam um casal compatível. Recordem que um número primo é um número maior que 1 que é divisível apenas por 1 e por si próprio. Como tal, o teu segundo objetivo será emparelhar cada um dos N inteiros de forma a que a soma de cada par seja primo.
Se N = 8 então o seguinte emparelhamento é válido:
São garantidos os seguintes limites em todos os casos de teste desta parte que irão ser colocados ao programa:
1 ≤ N ≤ 105 | Número de inteiros |
Os casos de teste desta parte do problema estão organizados em 3 grupos com restrições adicionais diferentes:
Grupo | Número de Pontos | Restrições adicionais |
---|---|---|
4 | 10 | N ≤ 10 |
5 | 20 | N ≤ 1 000 |
6 | 20 |
Os casos de teste do problema estão organizados em 6 grupos com restrições adicionais diferentes:
Grupo | Número de Pontos | Parte | Restrições adicionais |
---|---|---|---|
1 | 10 | Parte I | N ≤ 10 |
2 | 20 | Parte I | N ≤ 1 000 |
3 | 20 | Parte I | |
4 | 10 | Parte II | N ≤ 10 |
5 | 20 | Parte II | N ≤ 1 000 |
6 | 20 | Parte II |
Nota: O formato de input é igual para todas as partes.
A primeira linha contém um inteiro P, que representa a parte que o caso de teste representa. Se for 1, então o caso de teste refere-se à Parte I, se for 2 então refere-se à Parte II.
Segue-se uma linha com um inteiro N, representando o número de inteiros. Este valor será sempre par.
O output deve conter N/2 linhas, cada uma contendo dois inteiros separados por um espaço, sendo que cada par deve:
Notem que apenas têm de encontrar um emparelhamento válido, mesmo que existam vários emparelhamentos possíveis. A ordem dos números não interessa. É garantido que existe sempre pelo menos um emparelhamento válido.
1 8
7 8 1 6 2 5 3 4
Este exemplo corresponde ao exemplo da Parte I mencionado no enunciado.
2 8
3 8 4 7 5 6 1 2
Este exemplo corresponde ao exemplo da Parte II mencionado no enunciado.