Inestabilidad P64038


Statement
 

pdf   zip

Se tiene un vector de pares distintos de enteros, y se desea ordenarlo en orden creciente según el primer entero de cada par. Por ejemplo, el vector:

(2, 5) (1, 8) (10, -3)

quedaría ordenado así:

(1, 8) (2, 5) (10, -3)

Para ordenar el vector usaremos un algoritmo de ordenación no estable, por lo tanto, puede haber más de una ordenación posible. Por ejemplo, el vector:

(2, 5) (-1, 0) (2, 8)

tiene dos ordenaciones posibles:

(-1, 0) (2, 5) (2, 8)

(-1, 0) (2, 8) (2, 5)

Haz un programa que, dado un vector de enteros, cuente cuántas ordenaciones correctas tiene.

Entrada

Para cada caso empieza con un entero n100000n \le 100000, que es el tamaño del vector. A continuación hay nn pares de enteros xix_i yiy_i (1in1 \le i \le n). No hay dos pares iguales, es decir: i,j\forall i, j 1i,jn1 \le i, j \le n, ijxixjyiyji \neq j \Rightarrow x_i \neq x_j \vee y_i \neq y_j

Salida

Para cada caso, escribe el número de ordenaciones correctas del vector módulo 100000007.

Public test cases
  • Input

    2   1 2   2 3
    3   1 2   1 3   2 -99
    3   1 1   1 2   1 3
    4   1 2   1 3   2 2   2 3
    5   1 2   1 3   2 2   2 3   5 5
    

    Output

    1
    2
    6
    4
    4
    
  • Input

    2 1 2 2 3
    3 1 2 1 3 2 -99
    3 1 1 1 2 1 3
    4 1 2 1 3 2 2 2 3
    5 1 2 1 3 2 2 2 3 5 5
    

    Output

    1
    2
    6
    4
    4
    
  • Information
    Author
    Pol Mauri
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++