import java.util.Vector;

public class ListaInteiros{
    private Vector lista;
    

    public ListaInteiros(){
	lista=new Vector();
    }

    public ListaInteiros(Vector a){
	lista=a;
    }
    
    /*public int getPosition(int x){
	
    }
    */
    
    public Object clone(){
	return new ListaInteiros((Vector)lista.clone());
    }

    public void removeAt(int x){
	lista.remove(x);
    }
    
    public int count(int x){
	int c=0;
	for (int i=0; i<size(); i++){
	    if (lista.elementAt(i).equals(new Integer(x)))
		c++;
	}
	
	return c;
	
    }

    
    public int min(){
	int min= ((Integer) lista.firstElement()).intValue();
	for (int i=0; i<lista.size();i++){
	    int e=((Integer) lista.elementAt(i)).intValue();
	    if (e<min)
		min=e;
	}
	return min;
    }
    /*public int countLess(int x){
    }
    */
    public ListaInteiros sort(){
	ListaInteiros lsort=new ListaInteiros();
	ListaInteiros ll=(ListaInteiros) this.clone();
	while (!ll.empty()){
	    int min=ll.min();
	    int cmin=ll.count(min);
	    for (int i=0;i<cmin;i++)
		lsort.insert(min);
	    ll.remove(min);
	}
	return lsort;
    }    
    
    public void insert(int x){
	lista.addElement(new Integer(x));
    }

    
    public void remove(int x){
	while (count(x)>0)
	    lista.remove(new Integer(x));
	
    }
    
    public int size(){
	return lista.size();
    }

    public boolean empty(){
	return lista.isEmpty();
    }
    
    public boolean equals(Object x){
	if (x != null && (x instanceof ListaInteiros))
	    return lista.equals(((ListaInteiros) x).lista);
	else
	    return false;
    }
    
    public String toString(){
	String result="(";
	for (int i=0; i<size(); i++){
	    result= result + lista.elementAt(i);
	    if (i<size()-1)
		result= result + ";";
	}
	return result + ")";
	
    }
}
