#18077. 兵蚁排序

兵蚁排序

题目描述

蚁后 Q 的蚁群正筹划着一场盛大的阅兵仪式,蚁后 Q 把蚁群中的兵蚁们分成若干纵队,设某个兵蚁纵队现在有 nn 只兵蚁,兵蚁们排成一个序列 aa,第 ii 只兵蚁的战斗力为 aia_i。蚁后 Q 的兵蚁们都接受过蚁后 Q 的训练,这使得兵蚁们能听懂蚁后 Q 的指挥:

  • 选择一个区间 [l,r][l, r],区间内的兵蚁们将按照战斗力从低到高排序,即设排序后的兵蚁序列为 aa',那么将有 alal+1ara'_l\leq a'_{l+1}\leq \dots \leq a'_r

蚁后 Q 希望把此纵队的兵蚁们按照战斗力排成序列 bb,因为这样能最好地展现蚁后 Q 蚁群的实力。

输入格式

第一行一个正整数 TT,表示蚁后 Q 将兵蚁们分成了 TT 个兵蚁纵队

接下来对于每个纵队:

  • 第一行一个正整数 nn,表示纵队中兵蚁的数量
  • 第二行 nn 个正整数 a[1n]a[1\dots n],表示该纵队中兵蚁当前的排序
  • 第三行 nn 个正整数 b[1n]b[1\dots n],表示以后 Q 期望该纵队兵蚁最终的排序

输出格式

对于每个兵蚁纵队,首先输出一行 0/-1

  • 若蚁后 Q 无法指挥兵蚁们按战斗力最终排序为 bb,则输出 -1
  • 若蚁后 Q 可以指挥兵蚁们按战斗力最终排序为 bb,则输出 0

若第一行输出为 0,第二行输出一个整数 mm 表示蚁后 Q 需要指挥的次数,接下来 mm 行每行两个正整数 l,rl, r,表示蚁后 Q 指挥的区间为 [l,r][l, r],注意一个合法的指挥方案需要满足以下条件:

  • mn2m\leq n^2
  • 每次指挥都要保证 1lrn1\leq l\leq r\leq n
  • 指挥结束后,a,ba, b 相等

若存在多个合法的指挥方案,输出任意一个即可。

4
7
1 7 1 4 4 5 6
1 1 4 4 5 7 6
5
1 3 1 5 3
1 1 3 3 5
2
2 1
1 2
3
1 2 3
2 1 3
0
1
2 6
0
2
2 3
4 5
0
1
1 2
-1
7
8
2 3 4 5 6 5 1 4
1 2 3 4 5 6 5 4
7
1 7 4 3 2 5 6
1 5 2 3 4 7 6
7
4 6 5 1 2 7 3
4 3 1 2 5 6 7
7
4 6 7 5 2 3 1
1 3 4 2 6 5 7
7
6 4 1 5 3 2 7
1 5 2 4 6 3 7
7
6 4 7 3 1 2 5
4 6 1 5 2 3 7
7
6 5 7 4 3 1 2
6 5 4 2 3 1 7
0
6
6 7
5 6
4 5
3 4
2 3
1 2
-1
-1
-1
-1
-1
-1

样例2

b.in
b.out

数据范围与提示

对于 100%100 \% 的数据,$T \leq 10, \sum n \leq 1000,1 \leq a[i], b[i] \leq n$,保证 a,ba, b 中所有数字出现次数相同

子任务1 (20分),n10\sum n \leq 10

子任务2 (20分),n50\sum n \leq 50

子任务3 (30分),n100\sum n \leq 100

子任务4 (30分),n1000\sum n \leq 1000

注意你需要保证输出方案中 mn2m \leq n^2