Submission #1319136

#TimeUsernameProblemLanguageResultExecution timeMemory
1319136Muhammad_AneeqDEL13 (info1cup18_del13)C++20
15 / 100
66 ms8332 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...