using namespace std;

struct igra{
	char sifra[10];
	char naziv[30];
	char proizvod[20];
	char zanr[20];
	char podzanr[20];
	int PEGI;
	
};

struct lista{
	igra podaci[1000];
	int kursor;
};

void InitL(lista* L){
	L.kursor=0;
}

int FirstL(lista* L){
	return 0;
}

int EndL(lista* L){
	return L.kursor;
}

int NextL(int p,lista* L){
	if(p<0) return -1;
	else if (p>=0 && p<L.kursor) return p+1;
	else return -1;
}

int PreviousL(int p, lista* L){
	if(p<1) return -1;
	else if (p>0 && p<=L.kursor) return p-1;
	else return -1;
}

int LocateL(igra* x, lista* L){
	for(int i=0;i<=L.kursor;i++){
		if((!strcmp(x.sifra, L.podaci[i].sifra))
			&& (!strcmp(x.naziv,L.podaci[i].naziv))
			&& (!strcmp(x.proizvod,L.podaci[i].proizvod))
			&& (!strcmp(x.zanr,L.podaci[i].zanr))
			&& (!strcmp(x.podzanr,L.podaci[i].podzanr))
			&& (!strcmp(x.PEGI,L.podaci[i].PEGI)))
				return i;
		return L.kursor;
	}

}

int InsertL(igra* x, int p, lista* L){
	if(p<0 || p>L.kursor) return -1;
	L.kursor++;
	for(int i=L.kursor-1; i>p; i--)
		L.podaci[i]=L.podaci[i+1];
	L.podaci[p]= x;
	return 0;
	
}

int DeleteL(int p, lista* L){
	if(p<0 || p>L.kursor) return -1;
	for(int i=p; i<L.kursor+1; i++)
		L.podaci[i]=L.podaci[i+1];
	L.kursor--;
	return 0;
}

lista* RetrieveL(int p, lista* L){
	if(p<0 || p>L.kursor) return NULL;
	return L.podaci[p];
}

void DeleteAllL(lista* L){
	L.kursor=0;
}