Submeter | Todas submissőes | Melhores | Voltar |
ISOSCELE - Triângulos isósceles |
Um triângulo pode ser equilátero (três lados com o mesmo tamanho), escaleno (três lados com tamanhos diferentes) ou isósceles (dois lados com o mesmo tamanho e o terceiro com tamanho diferente). É um fato conhecido que três pontos com coordenadas inteiras quaisquer não podem ser vértices de um triângulo equilátero.
É dado um conjunto de pontos distintos com de coordenadas inteiras no plano XY, tal que nenhum subconjunto de três pontos é colinear. A sua tarefa é calcular quantos possíveis subconjuntos de três pontos são vértices de um triângulo isósceles.
Entrada
A entrada possui vários casos de teste, e cada caso é dado em várias linhas. A primeira linha de cada caso de teste contém um inteiro N indicando o número de pontos no conjunto (3 ≤ N ≤ 1000). Cada uma das próximas N linhas descreve um ponto do conjunto através de dois inteiros X e Y (1 ≤ X,Y ≤ 106), separados por um espaço em branco, representando as coordenadas do ponto no plano XY. Você pode assumir que em cada caso de teste não haverão dois pontos num mesmo local e não haverão três pontos colineares.
O último caso de teste é seguido de uma linha contendo um único zero.
Saída
Para cada caso de teste, imprima uma única linha com um único inteiro indicando o número de subconjuntos de três pontos que são vértices de um triângulo isósceles.
Exemplo
Entrada: 5 1 2 2 1 2 2 1 1 1000 1000000 6 1000 1000 996 1003 996 997 1003 996 1003 1004 992 1000 0 Saída: 4 10
Adicionado por: | Wanderley Guimarăes |
Data: | 2011-03-07 |
Tempo limite: | 1.960s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | Todas exceto: ASM64 CLOJURE ERL FSHARP PERL6 PY_NBC SCALA TCL |
Origem: | Final Sul-Americana da Maratona de Programação da ACM 2009 |
hide comments
2016-06-12 07:52:34
@Rafael Perrella, não tem como ter triângulos equiláteros nesse problema. |
|
2016-06-11 17:48:19 Rafael Perrella
NOTA: a definição de triângulo isósceles no enunciado está errada: "(dois lados com o mesmo tamanho e o TERCEIRO COM TAMANHO DIFERENTE)". Para ser isósceles basta ter dois lados com o mesmo tamanho, independentemente do terceiro ser igual ou diferente dos outros dois. Todo triângulo equilátero é também isósceles. A solução oficial usa a definição correta, logo se três pontos formarem um triângulo equilátero eles também formam um triângulo isósceles e, portanto, devem ser incluídos na resposta. Last edit: 2016-06-11 17:48:56 |
|
2011-08-19 06:20:08 Maycon Maia Vitali [UFES]
"Vocę pode assumir que em cada caso de teste năo haverăo dois pontos num mesmo local" Tomei +INF WA por causa disso. Verifiquem as baterias de teste. :-) |