Análisis de permutaciones considerando inversiones y rupturas
Python
Hard
lists
Tarea «Análisis de permutaciones considerando inversiones y rupturas»
Dada una permutación de números del 1 al n. Se requiere determinar si es "casi identidad": la cantidad de inversiones (pares i<j donde a[i] > a[j]) debe ser igual al máximo posible para permutaciones con un número fijo de rupturas. Se denomina ruptura a una posición k donde a[k] != k. Si la permutación cumple la condición, muestre la cantidad de rupturas; de lo contrario, muestre -1. Adicionalmente, si la cantidad de rupturas es igual a 0, muestre 0. Si la permutación es imposible (por ejemplo, datos incorrectos), muestre -2.
Formato de entrada
En la primera línea, un número entero n (1 ≤ n ≤ 10^5). En la segunda línea, n números enteros — la permutación.
Formato de salida
Un número entero: la cantidad de rupturas, -1 o -2.
Ejemplos
Ejemplo 1
ENTRADA
abacaba
abacaba
SALIDA
7
Ejemplo 2
ENTRADA
3
3 2 1
SALIDA
-1
main.py