Um quebra-cabeça conhecido envolve contar quantos quadrados podem ser feitos usando os pontos em uma grade 3x3:
. . .
. . .
. . .
A resposta é 6 - quatro quadrados pequenos, um quadrado grande e um quadrado formado pelos pinos superior, esquerdo, inferior e direito, com bordas ao longo das diagonais dos quadrados.
Sua tarefa é criar um programa que conte o número total de quadrados que podem ser formados a partir de um conjunto de pontos.
Seu programa terá entrada em um dos dois formatos (de sua escolha):
Um
M
porN
grade consistindo em um.
ou.
.
representa um ponto na grade do qual um quadrado pode ser um canto e todos os espaços na grade são exatamente uma unidade separados horizontal ou verticalmente.Uma lista de pares de coordenadas representando pontos em que um quadrado pode estar.
e retorne o número de quadrados distintos que podem ser formados usando os pontos fornecidos. Seu programa deve retornar uma solução correta para todas as entradas possíveis.
Por exemplo, considere a entrada acima, mas onde o quadrado central está ausente:
...
. .
...
Existem apenas dois quadrados possíveis aqui (o grande e o diagonal), portanto o programa deve retornar 2
.
O código mais curto para fazer isso em qualquer idioma vence.
Respostas:
Python, 95
Leva uma lista de coordenadas de stdin.
Explicação:
fonte