Os irmãos
Miguel e José são alunos como tu, que gostam muito de aprender
coisas novas. A disciplina favorita de ambos é matemática e por
isso estão sempre a resolver problemas. Mas a mãe deles só os
deixa fazê-lo depois de arrumarem o quarto.
Eles não gostam muito de arrumar coisas, por isso arranjam sempre jogos matemáticos para decidir quem tem de arrumar o quarto: quem perde tem de arrumar. Ultimamente têm andado a estudar múltiplos e divisores, por isso o último jogo está relacionado com esse tema. Primeiro, escolhem um conjunto de números inteiros positivos (podendo conter números repetidos). Agora o objetivo do jogo é encontrar um subconjunto desses números (podendo conter números repetidos) tal que para cada par de números A e B desse conjunto, A tem de ser múltiplo de B ou B múltiplo de A (outra forma de dizer o mesmo é que A tem de ser divisor de B ou B divisor de A). Nota que um número é sempre múltiplo dele próprio.
O vencedor do jogo é aquele que encontrar o maior subconjunto (com mais elementos) que obedece a esta regra dos múltiplos.
Por exemplo, se o conjunto de números for:
24 9 3 5 6
Então o maior subconjunto teria tamanho 3 e consistiria nos números 24, 3, 6 pois 24 é múltiplo de 3 (24 = 3 * 8), 6 é múltiplo de 3 (6 = 3 * 2) e 24 é múltiplo de 6 (24 = 6 * 4). Além disso, não há nenhum subconjunto maior, pois de todos os outros pares apenas temos que 9 é múltiplo de 3 (9 = 3 * 3).
Dado um conjunto de números escolhido pelo Miguel e pelo José, consegues dizer qual o maior subconjunto possível que obedeça à regra dos múltiplos?
Dado um conjunto de N números, determinar o tamanho do maior subconjunto de números tal que para todo o par Ni e Nj pertencentes ao conjunto se tem que Ni é múltiplo de Nj ou Nj é múltiplo de Ni
Na primeira linha vem um inteiro N que representa o número de elementos do conjunto.
Seguem-se N linhas em que cada uma representa um elemento do conjunto.
O output consiste apenas num inteiro, que representa o tamanho do maior conjunto que obedece as condições pedidas
São garantidos os seguintes limites em todos os casos de teste que irão ser colocados ao programa:
1 ≤ N ≤ 100 000 | Número de elementos no conjunto | |
1 ≤ Ni ≤ 10 000 000 | Valores do conjunto |
Os casos de teste deste problema estão organizados em 4 grupos com restrições adicionais diferentes:
Grupo | Número de Pontos | Restrições adicionais |
---|---|---|
1 | 20 | 1 ≤ N ≤ 25, 1 ≤ Ni ≤ 1 000 |
2 | 40 | 1 ≤ N ≤ 1 000, 1 ≤ Ni ≤ 100 000 |
3 | 20 | 1 ≤ N ≤ 100 000, 1 ≤ Ni ≤ 100 000 |
4 | 20 | - |
5 24 9 3 5 6
3
Este exemplo corresponde ao mencionado no enunciado.
10 5 15 3 26 30 7 13 60 9 24
4
5 11 2 5 17 3
1
6 12 4 1 2 4 1
6