public class VideoNoleggio 
{
    private boolean[] noleggiati;
    private String[] film;
    private int numFilm;
    private int numNoleggiati;
    
    public VideoNoleggio(int maxFilm)
    {
      film = new String[maxFilm];
      noleggiati = new boolean[maxFilm];
      azzera();
    }

    public void azzera()
    {
      for (int i=0; i<noleggiati.length; i++)
        noleggiati[i] = false;
      for (int i=0; i<film.length; i++)
        film[i]="";
      numFilm = 0;
      numNoleggiati = 0;
    } 

    protected int cerca(String titolo)
    {
      for (int i=0; i<numFilm; i++)
        if (titolo.equals(film[i]))
          return i;
      return -1;
    }

    public void aggiungiFilm(String titolo)
    {
      if (cerca(titolo) == -1)
      {
        film[numFilm]=titolo;
        numFilm++;
      }
    }

    public boolean noleggiaFilm(String titolo)
    {
      int posizione = cerca(titolo);
      if ((posizione != -1) && (!noleggiati[posizione]))
      {
        noleggiati[posizione]=true;
        numNoleggiati++;
        return true;
      }
      else 
        return false;
    }

    public boolean restituisciFilm(String titolo)
    {
      int posizione = cerca(titolo);
      if ((posizione != -1) && (noleggiati[posizione]))
      {
        noleggiati[posizione]=false;
        numNoleggiati--;
        return true;
      }
      else 
        return false;
    }

    public int numFilm()
    {
      return numFilm;
    }

    public int numNoleggiati()
    {
      return numNoleggiati;
    }
}