[传智杯 #4 决赛] 排排队

Luogu
IDLGP8197
Time1000ms
Memory512MB
DifficultyP3
Special JudgeO2优化排序构造传智杯
cyq 在 tsyz 担任了体育老师,负责排队一事。 在 tsyz 中,每个人都有一个身高 $a_{i}$,并且只有**相邻**的两个人可以交换位置。cyq 带领的队伍有 $n$ 个人,他现在要给大家排队形。 给定一个长度为 $n$ 的序列 $b$,一个队形被认为美观,当且仅当对于所有的 $i = 1, 2, 3, \dots n$,$a_{i} =b_{i}$。cyq 想知道,他能否让大家的队形变得美观,并且交换相邻两个人的次数不超过 $n^2$ 次。这个问题把 $cyq$ 难住了,请你帮他来解决这个问题,如果存在合法的交换方案,输出 `YES`,并给出一组方案;否则,输出 `NO`。 ## Input **本题单测试点内有多组测试数据**。 第一行是一个整数 $T$,表示数据组数,对于每组数据: 第一行是一个整数,表示队伍的长度 $n$。 第二行有 $n$ 个整数,第 $i$ 个整数表示第 $i$ 个人的身高 $a_i$。 第三行有 $n$ 个整数,第 $i$ 个整数表示美观队形里第 $i$ 个人的身高 $b_i$。 ## Output 对每组数据依次分别输出答案。 对于每组数据,若存在一种方案,则在第一行输出一个 `YES`,否则输出一个 `NO`。 如果输出 `YES`,下面则输出若干行每行两个整数 $i,j$,表示第 $i$ 个同学和第 $j$ 个同学交换位置,显然 $|i-j|=1$。在交换完成后,你还需要输出一行 `0 0` 表示你的操作结束了,请注意数组的下标从 1 开始编号至 $n$。 如果输出 `NO`,则接下来什么都不需要输出。 **请特别注意,对于每组数据,你的操作次数不能超过 $n^2$(不包括 `0 0` 一行),否则将得到 WA(Wrong Answer) 的结果**。 [samples] ## Note ### 数据规模与约定 对于全部的测试点,保证 $1\leq T \leq 10$,$1\leq n \leq 10^3$,$1\leq a_{i},b_{i}\leq 10^9$,且各个测试点 $n$ 之和不超过 $1000$,即 $\sum n\leq 10^3$。 ### 提示 - 请注意大量的输出输出对程序效率造成的影响,不要频繁刷新缓冲区。例如,对于使用 `std::cout` 的 C++ 选手,请使用 `'\n'` 而不是 `std::endl` 来换行;对于 java 选手,请选择高效率的输出方式,如使用 PrintWriter;python 选手可以正常的使用 print 而无需考虑效率问题。 - 请按照输出格式的要求输出您的答案,如果格式不符合要求,返回的评测信息将可能是 TLE、RE、WA、UKE 等任何结果。 ### C++ 语言的高效输出样例 ```cpp #include <iostream> int main() { std::ios::sync_with_stdio(false); std::cin.tie(0); for (int i = 1; i <= 5; ++i) { std::cout << i << '\n'; // 注意这里不能使用 std::endl } } ``` ### Java 语言的高效输出样例 ```java import java.io.PrintWriter; public class Main { public static void main(String[] args) { PrintWriter ot = new PrintWriter(System.out); for (int i = 1; i <= 5; ++i) { ot.println(i); } ot.flush(); // 请务必保证在程序结束时运行本条语句,否则在缓冲区的内容无法输出 } }
Samples
Input #1
3
4
1 2 2 3
3 2 2 1
3
1 2 3
1 2 4
1
1
1
Output #1
YES
4 3
2 3
1 2
3 2
3 4
0 0
NO
YES
0 0
API Response (JSON)
{
  "problem": {
    "name": "[传智杯 #4 决赛] 排排队",
    "description": {
      "content": " cyq 在 tsyz 担任了体育老师,负责排队一事。 在 tsyz 中,每个人都有一个身高 $a_{i}$,并且只有**相邻**的两个人可以交换位置。cyq 带领的队伍有 $n$ 个人,他现在要给大家排队形。 给定一个长度为 $n$ 的序列 $b$,一个队形被认为美观,当且仅当对于所有的 $i = 1, 2, 3, \\dots n$,$a_{i} =b_{i}$。cyq 想知道,他能否让大家",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P3"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP8197"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "cyq 在 tsyz 担任了体育老师,负责排队一事。\n\n在 tsyz 中,每个人都有一个身高 $a_{i}$,并且只有**相邻**的两个人可以交换位置。cyq 带领的队伍有 $n$ 个人,他现在要给大家排队形。\n\n给定一个长度为 $n$ 的序列 $b$,一个队形被认为美观,当且仅当对于所有的 $i = 1, 2, 3, \\dots n$,$a_{i} =b_{i}$。cyq 想知道,他能否让大家的...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments