La idea de proyecto es tan simple como colocar una seria de numeros en un numero maximo de movmientos, disponemos de dos stacks y solo podemos movernos de determinada manera, mediante unos movimeitos concretos que tienen un coste de 1 por movimieto. Los movmientos son los siguientes.

PUNTOS A TENER EN CUENTA:

este proyecto se basa mas en saber interpretar la notacion On, ver lo requereminientos en base a a los timepos de ejecucion segun las entradas que nos piden y sacar su O(n). Despues escoger un algoritmo que se adapte a esso requerimientos e interpretarlo.

Como lo que importan son los movimientos y adaptar nuestro algoritmo a esso movimientos, da igual que estructura de datos usemos poruqe ele resultado de nuestro programa van a aser unas ordenes, hay dos maneras, o las metemos en un array y las devolvermos al final o cada vez que hagamos una orden al escribimos directamente.

Puede ser que cada movieminto se defiuna en una funcion yque esa funcion sea la que iimprima las ordenes por pantalla o las pase al array (si no me cabe en una misma funcion tendere que dividir cada movimeitno en dos funciones y que o bine un ase llame a la otra cada vez que hagamos un movimiento o qe ambas dos esten empaquetadas en una, no vale lo de meter los punteros a fucniones dentro de un nodo ya qu eun nod o no puede incluir funciones no son clases de c++). IGUAL LOS ARRAYS DE FUNCIONES SE PUEDEN USAR PERO ESO ES MUCHO LIO HABALR CON ANDRES.

Despues hay que escoger la estructura de datos donde almacenaremos los datos a ordenar. Pueden ser lineales los stacks (metidos en nodos o en punteros) o pueden ser directamente nodos (cada nodo un nummero). No hay mas maneras de hacerlo porque el enunciado te limita, lo unico que se puede hacer es tener datos controladores en otro tipo de estructura que guarde relacion o este comnectada con nuestris stacks para poder hacer la operaciones de los movimientos mas eficionetes ,por por ejemplo no podemos usar, arbioles, grafos, y demas… ya que no tendria sentido (seguramente) y el enunciado lo limita por como se han de hacer los movimientos.

Por como se peuden hacer los mivientos si que se peude deducir que estamos ante dos colas (ya que solo se hace push en un sentido). ¿Esto significa que las colas hacen este tipode operaciones mas eficientees o es casualidad?

Las divisiones dentro de algoritmos de merge seran solo dos por los miviemtos y el nuemro de stacks que nos dejan usar. Hacerlos con mas es imposible en este caso porque no pdriamos imprimir los movimientos de las operaciones que les vaamos a mansdar al tester.