Punto Fijo

Time Limit:
8 Sec
Memory Limit:
128Mb
Enviados:
149
Resuelto:
32

Descripción

Un punto fijo de un vector es un punto que se asigna a sí mismo en el vector. el entero i es un punto fijo de a0, a1, ..., an - 1 si y sólo si ai = i. Por ejemplo, el vector [0, 2, 1] tiene 1 punto fijo (a0 = 0) ahora si yo cambio posición a2 y a1 quedaría así [0,1,2] ahora esto tiene 3 puntos fijos.
Su tarea es encontrar la mayor cantidad de puntos fijos de un vector y solo se le permite intercambiar dos elementos como máximo.
Ej se tiene el vector [0 , 1 , 4, 5, 2] esto tiene 2 puntos fijos pero no es la mayor cantidad, como solo se me permite intercambiar 2 elementos si intercambio 4 y 5 quedaría así [0,1,5,4,2] sigue con 2 puntos fijo, pero si intercambio 4 y 2 quedaría así [0,1,2,5,4] esto tiene 4 puntos fijos y es la mayor cantidad de puntos fijos así que la respuesta seria 4.

Entrada

La primera linea contiene el número de casos de pruba T, seguido por T casos, cada caso contiene N el tamaño del vector, seguido de N números.

Salida

Por cada caso debe imprimir una linea que contiene la mayor cantidad de puntos fijos.

Ejemplo Entrada

Copy icon
2
5
0 1 3 4 2
4
0 1 2 3

Ejemplo Salida

Copy icon
3
4

Ayuda

 Se puede hacer todos los cambios posibles y contar cuantos puntos fijos existen para un cierto tipo de cambio