#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
inline void solve()
{
int n,m;
cin>>n>>m;
int a[m];
set<int>s,z;
for (int i=1;i<=n;i++)
{
s.insert(i);
z.insert(i);
}
for (auto &i:a)
{
cin>>i;
s.erase(i);
}
vector<pair<int,int>>rng;
for (int i=1;i<=n;i++)
{
if (s.find(i)!=s.end())
{
int j=i;
while (s.find(j)!=s.end())
j++;
rng.push_back({i,j-1});
i=j-1;
}
}
if (rng.size()==1)
{
cout<<-1<<endl;return;
}
vector<int>ans;
int sz=rng.size();
int le=0;
for (int i=0;i<sz;i++)
{
int s=rng[i].ss-rng[i].ff+1;
if (le&&rng[i-1].second+1!=rng[i].first-1)
{
cout<<-1<<endl;return;
}
int z=(rng[i].ff+rng[i].ss)/2;
if (le>s)
{
cout<<-1<<endl;return;
}
while (s-2>=le&&s-2>0)
{
ans.push_back(z);
s-=2;
}
s-=le;
while (le--)
ans.push_back(rng[i].first-1);
le=s;
}
if (le)
{
cout<<-1<<endl;return;
}
cout<<ans.size()<<endl;
for (auto i:ans)
cout<<i<<' ';
cout<<endl;
}
int main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int t=1;
cin>>t;
for (int i=1;i<=t;i++)
{
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... |