#include <iostream>
#include <bits/stdc++.h>
#pragma GCC optimize(2)
#define endl '\n'
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int,int>PII;
const int N=200010;
int t,n,m;
int a[N];
PII q[N];
void solve()
{
cin>>n;
vector<PII>g;
for(int i=0;i<n;i++)
cin>>q[i].x;
for(int i=0;i<n;i++)cin>>q[i].y;
for(int i=0;i<n-1;i++)//冒泡排序;
{
for(int j=0;j<n-i-1;j++)
{
if(q[j]>q[j+1])//先比较pair中前一个数,前一个数相同则比较后一个数;
{
g.push_back({j+1,j+2});//下标与题相符
swap(q[j].x,q[j+1].x);
swap(q[j].y,q[j+1].y);
}
}
}
for(int i=0;i<n-1;i++)//检查 第二个数组是否有序;
{
if(q[i].y>q[i+1].y)
{
cout<<-1<<endl;
return ;
}
}
cout<<g.size()<<endl;//输出交换次序;
for(auto i:g)
{
cout<<i.x<<' '<<i.y<<endl;
}
}
int main()
{
cin>>t;
while(t--)
{
solve();
}
return 0;
}
C. Double Sort
于 2022-05-24 11:00:53 首次发布