QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 256 MB Total points: 100

#20003. Transformação de rotação

Statistics

Um movimento simples, repetidamente…

t.A.T.u., «A Simple Motion»

Julia adora movimentos simples, especialmente no espaço tridimensional! Recentemente, encontrou uma matriz que corresponde a uma certa rotação em torno de um eixo que passa pela origem.

Uma matriz de rotação $A$ leva o ponto $\begin{pmatrix}x\\y\\z\end{pmatrix}$ a $\begin{pmatrix}x'\\y'\\z'\end{pmatrix}$ da seguinte forma:

$$ \begin{pmatrix}x'\\y'\\z'\end{pmatrix}= \begin{pmatrix}A_{11}&A_{12}&A_{13}\\A_{21}&A_{22}&A_{23}\\A_{31}&A_{32}&A_{33}\end{pmatrix} \times\begin{pmatrix}x\\y\\z\end{pmatrix}. $$

Uma rotação também pode ser descrita geometricamente por um vetor unitário (isto é, de comprimento $1$) $v=\begin{pmatrix}v_x\\v_y\\v_z\end{pmatrix}$ em torno do qual a rotação ocorre, e um ângulo de rotação $\alpha$. Suponha que olha para a origem a partir da extremidade de $v$. Então, se a rotação for no sentido anti-horário, o ângulo $\alpha$ será positivo; caso contrário, será negativo.

Julia quer expressar geometricamente a rotação dada por uma matriz. Infelizmente, não conhece os valores de $v$ e $\alpha$, pelo que lhe pediu que os encontrasse, para poder continuar o seu movimento simples.

Entrada

É dada a matriz $A$: três linhas com três números reais em cada uma. Cada número tem no máximo $20$ algarismos após o ponto decimal. É garantido que existem $v$ e $\alpha$ tais que $1\le|\alpha|\le179$ e, além disso, os elementos da matriz $A'$, que corresponde a uma rotação em torno do vetor $v$ pelo ângulo $\alpha$, diferem dos elementos correspondentes de $A$ em, no máximo, $10^{-13}$.

Saída

Na primeira linha, imprima o ângulo $\alpha$ em graus. Na segunda, imprima as coordenadas do vetor unitário $v$. Imprima todos os números com a maior precisão possível. A resposta será considerada correta se a diferença entre $A_{ij}$ e o elemento correspondente da matriz construída a partir do seu ângulo e vetor unitário não exceder $10^{-6}$.

Exemplos

Entrada 1

0 -1 0
1 0 0
0 0 1

Saída 1

90
0 0 1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.