/* 3. Justifique por qué se cumplen los órdenes O(n) para lo cual indique que versión de implementación del TAD debe usarse. */ #include //Especifique de manera mínima un TAD con el que se resolverá el problema. Conjunto crearConjunto(int n); //O(n) void insertarConjunto(int x, Conjunto &c); //O(1) bool perteneceConjunto(int x, Conjunto c); //O(1) void destruir(Conjunto &c); //O(1) // Resuelva el problema aplicando las operaciones de ese TAD. bool SumaPares(int k, Lista S){ Conjunto complemento=crearConjunto(longitud(S));// O(n) while(!esVaciaLista(S) && !pertenece(k-primero(S), complemento)){ //en el while se realizan todas operaciones de O(1) y a lo sumo va hasta n insertarConjunto(primero(S), complemento); S=resto(S); } destruir(complemento);// O(1) return !esVaciaLista(S); } int main() { printf("Hello World"); return 0; }