#include<string.h>
#include <cstring>
using namespace std;

            
struct z{
        string zanr1;
        string zanr2;
        string zanr3;
        string podzanr1;
        string podzanr2;
       
            };

struct igre{
       string sifra;
       string naziv;
       string proizv;
       z zanr;
       string PEGI;
            };


struct lista{
       string sifra[1000];
       string naziv[1000];
       string proizv[1000];
       z zanr[1000];
       string PEGI[1000];
       int cursor;
       };      
  
typedef int el;
igre x;

el Endl(lista *l){

                 return l->cursor+1;
   
    
    }
    
el Firstl(lista *l){
        if (l->cursor == 0) 
           Endl(l);
        return 0;
    
    }

        
lista *Initl(lista *l) {
       l=new lista;
       l->cursor = 0;
        return l;
        }
        
el Nextl(el pos, lista *l){
if ((pos > l->cursor) || (pos < 0))
           return 0;
        return(pos+ 1);
    }
    


el insertl(igre igr, el pos, lista *l){
                int br;
                if((pos<=l->cursor+1)&&(pos>=0)){
                for (br=l->cursor; br >= pos; br --){
                     l->PEGI[br]=l->PEGI[br-1];
                     l->sifra[br]=l->sifra[br-1];
                        l->naziv[br]=l->naziv[br-1];
                        l->proizv[br]=l->proizv[br-1];
                        l->zanr[br]=l->zanr[br-1];
                        }
                        
                     l->cursor ++;
                      l->PEGI[br]=igr.PEGI;
                     l->sifra[br]=igr.sifra;
                      l->naziv[br]=igr.naziv;
                        l->proizv[br]=igr.proizv;
                        l->zanr[br]=igr.zanr;
                        
                        return 1;
                        }
               
                else
                return 0;
                }

igre retrivel(el pos, lista *l) {
        if ((pos < l->cursor) && (pos >= 0)) {
                      x.sifra = l->sifra[pos];
                       x.naziv = l->naziv[pos];
                      x.proizv = l->proizv[pos];
                     x.zanr.zanr1 = l->zanr[pos].zanr1;
                       x.zanr.zanr2 = l->zanr[pos].zanr2;
                        x.zanr.zanr3 = l->zanr[pos].zanr3;
                         x.zanr.podzanr1 = l->zanr[pos].podzanr1;
                          x.zanr.podzanr2 = l->zanr[pos].podzanr2;
                       x.PEGI = l->PEGI[pos];  
                      return x;
                      }
        }
                
el deletel(el pos, lista *l){
          int br;
        if ((pos < l->cursor) && (pos >= 0)) {
                for (br = pos; br < l->cursor; br++){
                     l->PEGI[br]=l->PEGI[br+1];
                     l->sifra[br]=l->sifra[br+1];
                        l->naziv[br]=l->naziv[br+1];
                        l->proizv[br]=l->proizv[br+1];
                        l->zanr[br]=l->zanr[br+1];
                    }
                l->cursor --;
                return 1;
                }
        else
            return 0;
} 
 
el Locatel(string p, lista *l) {
        el br = 1;
        while (br != l->cursor){
       if(p==l->sifra[br]){
                          return br;
                          }
                          br++;
                          }
     
        
        }

el deleteall(lista *l){
      l->cursor=0;
        return 0;
     }