8591: Lexicographic Comparison

内存限制:128 MB 时间限制:2 S
题面:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

A和pp是长度nn的排列。Initiallly, ai = p_i = ia





= p





=i for所有1\le i\le n1≤i≤n。AA是这样的排列序列:A_1= AA

1



=一个现代{i, j} =现代{张,p_j}

我,我



=一个

我−1,p

j







对于所有的i> 1i>1和1\le j\le n1≤j≤n。



有三种操作,其中xx和yy是正整数:

Swap_a x y: swap a_xa

x



和a_ya

y



,其中1\le x1≤x, y\le ny≤n;

Swap_p x y: swap p_xp

x



和p_yp

y



,其中1\le x1≤x, y\le ny≤n;

cmp x y:比较A_xA

x



与A_yA

y



字典顺序来排序的。

对于每个操作3,输出A_xA之间的关系

x



和A_yA

y



. 一个排列ss在字典序上小于一个排列tt,当且仅当存在一个索引ii使s_i





< t





和s_j = t_js

j



= t

j



对于所有的1\le j

输入格式

有多个测试用例。第一行输入包含一个整数TT(1\le T\le 10^51≤T≤10)

5

),测试用例的数量。对于每个测试用例:



第一行包含一个整数nn和qq (1\le n1≤n, q\le 10^5q≤10)

5

) -排列的长度和操作的数量。



下面的每一行qq包含一个字符串ff和两个整数xx和yy,表示一个操作。Ff是swap_a, swap_p和cmp中的一个。如果ff是“swap_a”和“swap_p”中的一个,那么1\ lex1≤x, y\ leny≤n。如果ff是“cmp”,1\le x1≤x, y\le 10^{18}y≤10

18





保证nn和qq在所有测试中的总和不超过10^510

5

输出格式

对于每个测试用例:



对于每个查询,如果A_xA输出“<”

x



比A_yA小吗

y



; 如果A_xA输出“>”

x



在字典编纂上大于A_yA

y



(例如,A_yA

y



在字典序上小于A_xA

x



); 输出“=”如果A_x=A_yA

x



=一个

y




输入样例 复制

2
5 5
cmp 1 2
swap_p 1 2
cmp 1 2
swap_a 1 2
cmp 1 2
1 1
swap_a 1 1

输出样例 复制

=
<
>

分类标签