Caramelos Iguales


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 256M

Authors:
Problem types
Allowed languages
C, C++

En una fábrica de caramelos hay una máquina especializada en cortar caramelos con un láser. La máquina recibe un caramelo y lo ubica en un tablero rectangular, se garantiza que el caramelo que recibe la máquina es un polígono de N vértices. Cada lado del polígono es paralelo a un lado del tablero y dos lados consecutivos son perpendiculares entre sí. Ningún lado del polígono toca a ningún otro lado ni lo intersecta, excepto por los vértices en común entre los lados consecutivos.

La fábrica está celebrando un evento especial donde quieren vender los caramelos por pares con la misma forma, así que los jefes quieren obtener el máximo provecho en la elaboración de los caramelos, quieren cortar cada pieza en dos caramelos que tengan la misma forma usando un segmento de línea contenido en el polígono y paralelo a un lado del polígono. Si el caramelo puede ser cortado en dos polígonos congruentes la máquina imprime "ADECUADA" en una pantalla que pueden ver los supervisores y lo pasa a la siguiente fase de preparación en la fábrica. Sino imprime "DEFECTUOSA" y lo vierte en un contenedor para ser revisado nuevamente.

Dos polígonos son congruentes si uno puede ser transformado en el otro a través de una serie de rotaciones, reflexiones y traslaciones.*

Un polígono puede ser dividido solo por segmentos de línea internos y paralelos a alguno de los ejes del tablero.*

Se garantiza que todas las coordenadas de los puntos son enteras.

Usted debe escribir un programa para la máquina cortadora que dada una pieza de caramelo debe decir si la pieza es adecuada o defectuosa.

Subtareas

  • Subtarea 1 (12 puntos): 4 \leq N \leq 100 000, cualquier línea horizontal o vertical que divide al polígono lo divide en exactamente 2 partes.
  • Subtarea 2 (15 puntos): 4 \leq N \leq 200
  • Subtarea 3 (23 puntos): 4 \leq N \leq 2000
  • Subtarea 4 (50 puntos): 4 \leq N \leq 100 000

Entrada

La primera línea de la entrada contiene un solo entero N, el número de vértices. La i-ésima de las siguientes N líneas contiene un par de enteros X_i, Y_i (0 \leq X_i, Y_i \leq 10^{9}): las coordenadas del i-ésimo vértice de la forma del caramelo.

Los vértices están dados en orden, más formalmente los segmentos (X_1, Y_1) - (X_2, Y_2), (X_2,Y_2) - (X_3, Y_3), ..., (X_{N-1}, Y_{N-1}) - (X_N, Y_N), (X_N, Y_N) - (X_1, Y_1) son todos los lados del polígono. Y son perpendiculares entre sí.

Salida

Su programa debe imprimir "ADECUADA" si la pieza puede ser cortada en dos polígonos congruentes, y "DEFECTUOSA" en caso contrario.

Ejemplos

Entrada 1
10
0 0
1 0
1 1
3 1
3 5
2 5
2 3
1 3
1 2
0 2
Salida 1
ADECUADA

Explicación Ejemplo 1

Entrada 2
6
0 0
1 0
1 1
2 1
2 2
0 2
Salida 2
DEFECTUOSA

Explicación Ejemplo 2


Comments

There are no comments at the moment.