Ciao a tutti, ho questo codice e, funziona quasi sempre, però quando assegno ad a[] i valori 123124 e dopo inserisco (per "indovinare" la sequenza 123123124 non me lo da giusto), consigli??

codice:
#include <iostream>
#define MAX 100
using namespace std;

int a[MAX]; //Array
int dim_a; //Dimensione array
int inserimento();
int ricerca();

int _tmain(int argc, _TCHAR* argv[])
{
	
	cout<<("inserisci la dimensione dell'array:");
	cin>>dim_a;
	inserimento();
	ricerca();

	system("pause");
	return 0;
}

int inserimento(){
	for(int i=0;i<dim_a;i++){
		cout<<("inserisci l'elemento dell'array di posto:")<<i<<" ";
		cin>>a[i];
		}
	return 0;
}

int ricerca(){
	int b[MAX];
	int x;
	int y=0;
	int g=0;

	while(y<dim_a){
		cout<<("inserisci un numero");
		cin>>x;
		
		if(x==a[y]){
			b[y]=x;
			y++;
			}
			else if(y!=0){
				b[y]=0;
					y--;
			}
	}
				
			
		
	
	if(y==dim_a){
	cout<<("hai indovinato");
	}
	return 0;

}
il problema si trova nella funzione ricerca()