Número de Arrays Únicos

Dado que existem n arrays, cada um com comprimento l (l inteiros), pretende-se calcular o número de arrays únicos. Considera-se que dois arrays são diferentes se divergirem em pelo menos um elemento.
Note que comparar os arrays individualmente pode demorar demasiado. Para evitar esse problema, pode recorrer-se a uma função de hash à sua escolha e comparar apenas os valores resultantes dessa função.
Depois disso, pode-se pegar num array grande de tamanho m e inicializá-lo a zeros. De cada vez que se obtiver um valor de hash, marca-se essa posição no array com 1. No final, é possível contar quantas posições ficaram a 1.
Note que a função de hash deve ser calculada módulo m, de forma a garantir que os índices ficam no intervalo [0; m).

Entrada

A primeira linha da entrada contém dois inteiros n (1 ≤ n ≤ 1000) e l (1 ≤ l ≤ 1000).
As próximas n linhas contêm l inteiros separados por espaços (0 ≤ ).

Saída

O programa deve imprimir o número de arrays únicos.

Exemplos

Entrada
Saída
4 3 1 2 3 3 2 1 2 5 3 3 2 1
3
2 3 1 2 3 4 1 2 3 4
1
Hint
Se a função de hash não for suficientemente boa e ainda ocorrerem colisões, experimente usar 2 funções de hash diferentes – isto torna o algoritmo duas vezes mais resistente a colisões.
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue