PKU 1254 - Hansel and Grethel

Autor da análise: tmadeiratmadeira

Link: http://acm.pku.edu.cn/JudgeOnline/problem?id=1254

Resumo

Dados dois pontos em $\mathbb{R}^2$ juntamente com ângulos a partir de um referencial (i.e., duas retas) determinar as coordenadas cartesianas desse referencial (i.e., o ponto de interseção entre elas).

Nota: Não é preciso se preocupar com retas paralelas, pois o enunciado deixa claro que o ângulo entre as duas retas nunca é 180º.

Solução

Como os ângulos são dados no sentido horário e o norte é 0º, a primeira coisa que sugiro é colocá-los no nosso padrão. Para isto invertemos eles ($angle = 360-angle$) e adicionamos 90 (tudo junto fica $angle = 450-angle$).

Então podemos traduzir os nossos dados para aquela equação da reta que aprendemos lá na escola: $y=ax+b$ (para as duas retas dadas). $a$ é a tangente do ângulo (use a função tan da biblioteca math.h) e $b$ pode ser facilmente calculada com os outros valores[0].

Com as duas retas em mão, basta calcular sua interseção e imprimir a resposta em double com %.4f (que arredonda do jeito que o problema pede).

[0] Há o caso, porém, em que o ângulo dado é 0 ou 180 graus (e nesse caso faríamos o computador calcular a tangente de 90 ou 270, que resultam respectivamente em $+\infty$ e $-\infty$). Para este caso, basta considerar a reta $x = \textrm{``coordenada $x$ do ponto dado''}$.

Testes

Entrada

2
30 50 90
20 40 180
30 40 96
20 20 150

Saída

20.0000 50.0000
7.0610 42.4110

Enquete

Qualidade do enunciado

Dificuldade do problema

Problema interessante

Discuta o problema

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License