Problema com vetores em c++ (Exemplo 3 mais especifico)

Segue em anexo o enunciado da questão:
inserir a descrição da imagem aqui

Escrevi o código porém obtive problemas com os exemplos nº 3 e 4 , onde meu código não identifica alguns cartões como invalidos
inserir a descrição da imagem aqui

Por ultimo posto aqui meu código como está:

    #include <iostream>
    using namespace std;
    #define n 6
    int geraNumeroAleatorio( int semente )
    {
    static unsigned int st=semente, init=0;
    unsigned long long prod;
    unsigned int x, i;

    if( init ) 
    semente = 0;
    init = 1;
    i = 0;
    while( i <= semente ) {
    prod = (unsigned long long)st * 48271;
    x = (prod & 0x7fffffff) + (prod >> 31);
    x = (x & 0x7fffffff) + (x >> 31);
    st = x;
    i = i + 1;
    }

    return (st % 60) + 1;
    }

    int main()
    {
int cartao(n),aux(n),quantia,semente,k,teste,cont;
k=1;

cout<<"Digite uma semente: ",cin>>semente;
cout<<"Digite a quantidade de cartões: ",cin>>quantia;

while (k<=quantia)
{
    cout<<"Cartao #"<<k<<": ";  
for(int i=0;i<n;i++)
{
    cartao(i)=geraNumeroAleatorio(semente);
    cout<<cartao(i)<<" ";
}
    for (int i=0;i<n;i++)
    {
    teste=0;
        for(int j=0;j<n;j++)
        {
            if (cartao(i)==cartao(j))
                teste++;
        }
    }
    if(teste!=1)
    {
    cout<<"*** invalido, tem repetidos"<<endl;
    }
    else
    cout<<" ok "<<endl;

k=k+1;
}
    }