Considere un triángulo ABC donde cada lado tiene una longitud entera (un triángulo integral ). Defina una mediana de ABC como un segmento de línea desde un vértice hasta el punto medio del lado opuesto. En la figura siguiente, los segmentos de línea roja representan las medianas. Tenga en cuenta que cualquier triángulo tiene tres medianas.
Sea n un número entero positivo. ¿Cuántos triángulos integrales no degenerados con una longitud de lado menor o igual a n tienen al menos una mediana integral?
Desafío
Escriba un programa para calcular el número de triángulos integrales con al menos una mediana integral para una longitud lateral máxima dada n . El orden de las longitudes de los lados no importa, es decir, <6,6,5> representa el mismo triángulo que <5,6,6> y debe contarse solo una vez. Excluya triángulos degenerados como <1,2,3>.
Puntuación
La n más grande para la cual su programa puede generar el número de triángulos en 60 segundos en mi máquina es su puntaje. El programa con la puntuación más alta gana. Mi máquina es una Sony Vaio SVF14A16CLB, Intel Core i5, 8GB de RAM.
Ejemplos
Deje T ( N ) sea el programa con entrada de N .
T(1) = 0
T(6) = 1
T(20) = 27
T(22) = 34
Tenga en cuenta que T (1) = T (2) = T (3) = T (4) = T (5) = 0 porque ninguna combinación de lados integrales producirá una mediana integral. Sin embargo, una vez que llegamos a 6, podemos ver que una de las medianas del triángulo <5,5,6> es 4, entonces T (6) = 1.
Tenga en cuenta también que T (22) es el primer valor en el que el doble conteo se convierte en un problema: el triángulo <16,18,22> tiene las medianas 13 y 17 (y 2sqrt (85)).
Computando las medianas
Las medianas de un triángulo se pueden calcular mediante las siguientes fórmulas:
Current top score: Sp3000 - 7000 points - C