#include <string.h>
#include <cstdlib>
#include <iostream>
using namespace std;
typedef int element1;

struct tigra{
       string sifra = "";
       char naziv[40];
       char proizvodac[40];
       char zanr[10];
       int pegi;}igra;


struct tlista {
	   tigra igre[15000];
       int cursor;};

element1 EndL(tlista *l){
                return (*l).cursor;}

element1 FirstL(tlista *l){
        if(!(l->cursor)) return EndL(l);
        else return 0;}

element1 NextL(element1 p, tlista *l){
                if (p==EndL(l)) return 0;
                else return p=p+1;}

element1 PreviousL(element1 p, tlista *l){
        if (p==FirstL(l)) return 0;
        else return p=p-1;}

element1 LocateL(tigra a, tlista *l){
        for(int i = 0; i < l->cursor; i++){
                if(l->igre[i].sifra == a.sifra) return i;}
        return EndL(l);}

int InsertL(tigra x, element1 p, tlista *L){
    	if(p<0 || p>L->cursor) return 0;
    	int i=L->cursor;
    	L->cursor++;
    	while(i>=p) { L->igre[i] = L->igre[i-1]; i--; }
    	L->igre[p] = x;
    	return 1;}

int DeleteL(element1 p, tlista *l){
        if (p >= 0 && p < l->cursor) {
                for (int i = p; i < l->cursor; i++){
                        l->igre[i].sifra = l->igre[i+1].sifra;
                        strcpy(l->igre[i].naziv, l->igre[i+1].naziv);
                        }
                l->cursor--;
                return 1;}
        else return 0;}

tigra RetrieveL(element1 p, tlista *l){
        igra.sifra = l->igre[p].sifra;
        strcpy(igra.naziv, l->igre[p].naziv);
        igra.pegi = l->igre[p].pegi;
        strcpy(igra.zanr, l->igre[p].zanr);
        return igra;}

void DeleteAllL(tlista *l){
        l->cursor = 0;}


tlista* InitL(tlista *l){
         l = new tlista;
         l->cursor = 0;
         return l;}