#P13704. [NWERC 2023] Exponentiation

[NWERC 2023] Exponentiation

Description

Zoe 在业余时间开发了一个在线计算器。不幸的是,上周该计算器遭遇了一次拒绝服务攻击。攻击者创建了大量整数变量,将它们相互进行幂运算,并尝试进行大量比较。这些巨大的整数让服务器无法承受,最终导致崩溃。在 Zoe 修复这个问题之前,她决定实际执行攻击者请求的这些计算。

nn 个整数变量 x1,x2,,xnx_1, x_2, \dots, x_n。一开始,每个变量都被赋值为 20232023。你需要执行 mm 条如下两种类型的指令:

  • 操作,格式为“! i j\texttt{! i j}”,其中 iji \neq j。表示将 xix_i 赋值为 xixjx_i^{x_j}
  • 查询,格式为“? i j\texttt{? i j}”,其中 iji \neq j。表示你需要输出 '>\verb|>|' 如果 xix_i 大于 xjx_j,输出 '=\verb|=|' 如果 xix_i 等于 xjx_j,输出 '<\verb|<|' 如果 xix_i 小于 xjx_j

例如,考虑第一个样例。在 55 次操作后,变量的值如下:

$$\begin{aligned} x_1 &= \left({2023}^{2023}\right)^{{2023}^{2023}}, \\ x_2 &= \left({2023}^{{2023}^{2023}}\right)^{2023}, \\ x_3 &= 2023, \\ x_4 &= 2023^{2023}。 \end{aligned}$$

Input Format

输入包含:

  • 一行两个整数 nnmm2n10002 \leq n \leq 10001m10001 \leq m \leq 1000),表示变量个数和指令条数。
  • 接下来 mm 行,每行包含一个字符 cc(为 '!\texttt{!}' 或 '?\texttt{?}')和两个整数 iijj1i,jn1 \leq i, j \leq niji \neq j),描述一条指令。

Output Format

对于输入中的每个查询,输出其答案。

4 8
! 1 4
! 2 1
! 4 3
! 1 4
! 2 3
? 3 4
? 2 4
? 2 1
<
>
=

4 9
! 2 4
! 1 2
? 3 1
? 1 2
! 2 3
? 1 2
! 1 3
! 3 2
? 1 3
<
>
>
<

Hint

由 ChatGPT 4.1 翻译