Você pode fazer a contagem dos carneirinhos distintos colocando todos os carneirinhos que você for lendo em um conjunto e depois vendo o tamanho do conjunto; ou usando um vetor de booleanos e contabilizar toda vez que um carneirinho passa de falso para verdadeiro.
Outra forma de resolver este problema para linguagens que não têm o recurso de conjuntos é ordenar todos os carneirinhos e usar a ordenação para distinguir e contar os carneirinhos diferentes.
var input =require('fs').readFileSync('/dev/stdin','utf8');var lines =input.split('\n');letT=parseInt(lines.shift());for(let i =0; i <T; ++i){letN=parseInt(lines.shift());let resposta = (newSet(lines.shift().trim().split(' '))).size;console.log(resposta);}
T =int(input())for _ inrange(T): N =int(input()) resposta =len(set(input().strip().split(' ')))print(resposta)