Combinazione test case errati

Salve a tutti,
Ho provato a risolvere combinazione segreta, ma nonostante sul mio computer il codice non mi dia problemi con i casi di esempio, appena lo sottopongo mi da errore proprio con i test case che riguardano gli esempi.
Qualcuno saprebbe aiutarmi?

Posta il codice cosi possiamo aiutarti.

void suddividi(int N, int* X, int* Y){

bool primi[N*4];

primi[0]=true;
primi[1]=true;

for(int i=2;i<N*4;i++){
if(!primi[i]){

for(int j=i+i;j<N*4;j+=i){
primi[j]=true;

}
}
}

for(int i=1,j=0; j<N; i+=2,j++){
X[j]=i;
}
for(int i=2,j=0; j<N;i+=2,j++)
Y[j]=i;

for(int i=0; i<N;i++){
if(primi[X[i]+Y[i]]){
for(int j=i;j>0;j–){
if((!primi[X[i]+Y[j]])&&(!primi[X[j]+Y[i]])){
swap(Y[i],Y[j]);
break;

}
}

}
}

return;

}

Dichiarando il vettore dei numeri primi in globale oppure azzerando il suo contenuto l’ algoritmo fa 100. Le variabili dichiarate in una funzione assumono valori casuali.
Comunque l’ esercizio Combinazione segreta è questo qui xD