pesquisa

URI PROBLEMA 1618 - Colisão SOLUÇÃO EM C++

URI Online Judge | 1618

Colisão

Por Jony Teixeira de Melo, Centro Universitário do Triângulo BR Brazil
Timelimit: 1
Você recebeu a missão de verificar se o robô invadiu uma área retangular formada por quatro pontos cardeais (A,B,C e D). Serão informados os quatro pontos de um plano cardeal conforme a figura. A área será formada pela ligação dos quatro pontos da seguinte forma A-B, B-C, C-D e D-A. Será informado ainda a coordenada X,Y do robô.

Entrada

A entrada é composta de vários casos de testes. A primeira linha é formada por um número N indicando o total de casos de testes. As próximas N linhas são constituídas por 10 números inteiros (AxAyBxByCxCyDxDyRXRY) representando cada um dos vértices ABC e D e pela posição XY do robô. Cada valor é separado por um espaço em branco.

Saída

A saída deverá imprimir para cada caso de testes o número 1, se o robô estiver dentro da área (considerar as bordas da figura como parte da área da figura), e imprimir o número 0 caso contrário.


#include <cstdio>
using namespace std;

int main()
{
int n, ax, ay, bx, by, cx, cy, dx, dy, rx, ry;

scanf("%i", &n);

for (int i = 0; i < n; ++i)
{
scanf("%i %i %i %i %i %i %i %i %i %i", &ax, &ay, &bx, &by, &cx, &cy, &dx, &dy, &rx, &ry);

if(rx >= ax && rx <= bx && rx >= dx && rx <= cx && ry >= ay && ry <= dy && ry >= by && ry <= cy){
printf("1\n");
}else{
printf("0\n");
}
}

return 0;
}

Postar um comentário

0 Comentários