该题时间复杂度可以卡到 Θ(Tn3),构造 a 前半部分全是 1,后半部分全是 2 即可。
#include<bits/stdc++.h>
#define int ll
using namespace std;
typedef long long ll;
const int N = 750;
mt19937_64 rnd(chrono::system_clock::now().time_since_epoch().count());
int p[N];
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0) , cout.tie(0);
int T = 5;
cout << T << "\n";
while(T--)
{
int n = 700;
int r[3] = {n / 2 , n};
iota(p + 1 , p + n + 1 , 1);
shuffle(p + 1 , p + n + 1 , rnd);
cout << n << "\n";
for(int i = 1 ; i <= r[0] ; i++)cout << "1 ";
for(int i = r[0] + 1 ; i <= n ; i++)cout << 2 << " \n"[i == n];
for(int i = 1 ; i <= n ; i++)cout << 1 << " \n"[i == n];
for(int i = 1 ; i <= n ; i++)cout << p[i] << " \n"[i == n];
}
return 0;
}