#include "bits/stdc++.h"
using namespace std;
#define SZ(s) (int)s.size()
vector <int> v;
int n, m;
bool tr = 0;
map <vector <int>, bool> vis;
void f(vector <int> a, vector <int> ans){
if(vis.find(a) != vis.end() or tr) return;
if(SZ(a) == n+2){
v = ans;
tr = true;
return;
}
vis[a] = true;
for(int i = 1; i < SZ(a)-1; i++){
if(a[i-1] != a[i]-1 and a[i+1] != a[i]+1){
for(int x = a[i-1]+1; x < a[i]; x++){
for(int y = a[i]+1; y < a[i+1]; y++){
vector <int> a1;
for(auto j : a){
// cout << j << ' ';
if(j == a[i]) a1.push_back(x);
if(j == a[i+1]) a1.push_back(y);
a1.push_back(j);
}
// cout << '\n';
// for(auto j : a1){
// cout << j << ' ';
// }
// cout << '\n';
vector <int> ans1 = ans;
ans1.push_back(a[i]);
f(a1,ans1);
}
}
}
}
}
void solve(){
cin >> n >> m;
vector <int> a(m+1,0);
for(int i = 1; i <= m; i++){
cin >> a[i];
}
a.push_back(n+1);
tr = 0;
v.clear();
vis.clear();
// for(auto i : a){
// cout << i << ' ';
// }
// cout << '\n';
f(a,{});
if(!tr) cout << "-1\n";
else {
cout << SZ(v) << '\n';
for(auto i : v){
cout << i << ' ';
}
cout <<'\n';
}
}
int main(){
ios::sync_with_stdio(false); cin.tie(nullptr);
int T;
cin >> T;
while(T--) solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |