Fotografías Vacunas


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal

El Granjero Juan (GJ) ha tomado una fotografía de todo su rebaño de N (1 \leq N \leq 100 000) vacas convenientemente numeradas 1...N de tal manera que él puede mostrarla a sus amigos.

El día de la foto, las vacas corren para formar una sola fila en algún orden arbitrario con la posición i conteniendo a la vaca c_i (1 \leq c_i \leq N). El Granjero Juan tiene sus propias ideas de cómo deberían alinearse las vacas.

GJ piensa que la vaca i debería estar únicamente a la izquierda de la vaca i+1 (para todo i, 1 \leq i \leq N-1) y que la vaca N puede estar solo a la izquierda de la vaca 1. Por supuesto, ninguna vaca estará a la izquierda de la primera (más a la izquierda) vaca en la fila.

Las vacas tienen muchas ganas de comer la cena post-foto prometida, por lo tanto el Granjero Juan quiere tomar la fotografía tan pronto como sea posible. Las vacas no son buenas siguiendo instrucciones, por lo tanto él únicamente elige un par de vacas adyacentes y hace que intercambien posiciones una vez por minuto. ¿Cuán rápido puede el Granjero Juan ser capaz de ponerlas en algún orden aceptable?

Considere un conjunto de 5 vacas cuya alineación inicial se ve de la siguiente manera:

Izquierda           Derecha
        3  5  4  2  1

Él puede intercambiar primero el segundo par de vacas:

        3  4  5  2  1

Y luego intercambiar el par más a la derecha:

        3  4  5  1  2

Para producir un alineamiento aceptable que requirió dos minutos de intercambios de vacas.

Entrada

• Línea 1: Un solo entero, N.

• Líneas 2…N+1: La línea i+1 contiene el número de la vaca i-ésima en la fila, c_i.

Salida

• Línea 1: La mínima cantidad de tiempo, en minutos, que le toma al Granjero Juan para tener a las vacas en algún orden apropiado.

Ejemplo de Entrada

5
3
5
4
2
1

Ejemplo de Salida

2

Comments

There are no comments at the moment.