#P6718. [CCO2018] Flop Sorting

[CCO2018] Flop Sorting

题目描述

Robert 创建了一道线段树题,题目是:

给定长为 NN 的排列 aia_i,我们规定一个翻牌操作为将一个区间的最小值与最大值交换。现在给定您 QQ 个翻牌操作,每次对 [l,r][l,r] 执行翻牌操作,求进行 QQ 次翻牌操作后的最终序列。

搞好了题目描述,接下来要搞数据了。

现在给定了 NN,初始序列 aia_i 和最终序列,求中间要进行的翻牌操作。

输入格式

第一行一个整数代表序列长度 NN
第二行 NN 个整数代表初始序列 aia_i
第三行 NN 个整数代表最终序列。

输出格式

首先第一行一个整数 QQ 代表要进行的翻牌操作的次数。
接下来 QQ 行每行两个整数 l,rl,r 代表对 [l,r][l,r] 进行翻牌操作。

6
1 3 5 6 4 2
1 2 3 4 5 6
4
2 3
3 6
2 5
4 5

提示

样例说明

对于样例 11,执行的 44 次翻牌操作为:

  • [2,3][2,3] 进行翻牌操作,交换 3355
  • [3,6][3,6] 进行翻牌操作,交换 6622
  • [2,5][2,5] 进行翻牌操作,交换 5522
  • [4,5][4,5] 进行翻牌操作,交换 5544

数据规模与约定

对于 100%100\% 的数据,1aiN40961 \le a_i \le N \le 40961Q3×1051 \le Q \le 3 \times 10^51lrN1 \le l\le r \le N
对于其中 20%20\% 的数据,N100N \le 100
对于另外 40%40\% 的数据,N2048N \le 2048

说明

翻译自 Canadian Computing Olympiad 2018 Day 2 C Flop Shorting