Otro Ordenamiento
Los alumnos de la Preselección de Informática de IslaGrande están muy motivados por el nuevo método de ordenamiento aprendido.
La esencia de este método es muy simple: una secuencia de números se subdivide en segmentos. El primer segmento incluye los números con índices desde hasta , el segundo desde hasta , el último desde hasta . Adicionalmente, en el proceso de ordenamiento, números individuales no cambian de posición, solamente los segmentos serán reordenados.
Para hacer este método de ordenamiento fácil de entender, el entrenador les asignó a los alumnos una tarea: dividir la secuencia en el mínimo número de segmentos tal que sea posible aplicar al segmento el método de ordenamiento.
Usted, uno de los estudiantes más entusiastas, decidió escribir un programa que le permita resolver el problema para cualquier secuencia de números.
Entrada
La primera línea de entrada contiene un entero — la longitud de la secuencia.
La segunda línea contienen enteros — los elementos de la secuencia.
Los números en línea están separados por un espacio.
Salida
La única línea debe contener el mínimo número de segmentos de la partición.
Ejemplos
Entrada 1
6
5 6 4 3 1 2
Salida 1
4
Explicación
La secuencia puede dividirse en cuatro segmentos . El segmento debe colocarse primero, segundo, tercero y último. Así la secuencia puede ordenarse.
Entrada 2
3
1 2 1
Salida 2
2
Explicación
La secuencia original puede dividirse en los segmentos y .
Comments
.
alguin me puede decir si para este problema hay que ordenar solamente de menor a mayor
En caso de ser así,sustituyo cada número por el número del lugar que ocupa en la lista ya ordenada. ME parece ser una buena idea,ya sabrás porque
A que se refieren con que números individuales no cambian su posición?
Hay que dividir la lista de números original en varias listas de números, para después reordenar esas listas. No movemos los números dentro de las listas, sino las listas en sí.
PD: Con lista me refiero a array.
esta muy dificil
este problema es una descara