// ---------- PREGUNTA1 ------------

// Archivo Conjunto.java

class CVacio extends Exception{}



class Conjunto{

	protected Nodo primero;		//representacion



	public Conjunto(){		//constructores

		primero=null;

	}

	public Conjunto(int x){

		primero=new Nodo(x,null);

	}

	public Conjunto(int x, int y){

		for(int i=y; i>=x; --i)

			primero=new Nodo(i, primero);

	}



	public int extraerMenor() throws CVacio{	//metodos

		if(primero==null)

			throw new CVacio();

		int m=primero.valor;

		primero=primero.sgte;

		return m;

	}

	public Conjunto union(Conjunto x){

		Nodo tmp=primero;

		while(tmp.sgte!=null)

			tmp=tmp.sgte;

		tmp.sgte=x.primero;

		Conjunto c=new Conjunto();

		c.primero=primero;

		return c;

	}

}



// ---------- PREGUNTA2 ------------

// Archivo Polinomio.java

class Polinomio{

	protected Nodo primero;



	public Polinomio(){

		primero=null;

	}



	public void agregarCoeficiente(int potencia, double coef){

		if(primero==null){

			primero=new Nodo(potencia, coef, null);

			return;

		}

		Nodo M=primero;

		while(M!=null && M.sgte!=null && M.sgte.potencia<=potencia)

			M=M.sgte;

		if(M==null){

			M=new Nodo(potencia, coef, null);

			return;

		}

		if(M.potencia==potencia){

			M.coeficiente+=coef;

			return;

		}

		Nodo aux=M.sgte;

		M.sgte=new Nodo(potencia, coef, null);

		M.sgte.sgte=aux;

		return;

	}

	public double valor(double x){	//evalua polinomio en x

		double R=0;

		Nodo j=primero;

		while(j!=null){

			R+=(j.coeficiente)*Math.pow(x,j.potencia);

			j=j.sgte;

		}

		return R;

	}

}