Submission #1018708

#TimeUsernameProblemLanguageResultExecution timeMemory
1018708vjudge1Karte (COCI18_karte)C++17
120 / 120
131 ms12120 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long

signed main()
{
	int n,k;
	cin>>n>>k;
	int a[n];
	for (int i=0;i<n;i++)
		cin>>a[i];
	sort(a,a+n);
	multiset<int> se;
	for (int i=n-1;i>n-1-k;i--)
		se.insert(a[i]);
	int cnt[k+1]={};
	for (int i=0;i<n-k;i++)
	{
		if (a[i]>k)
			return cout<<-1<<endl, 0;
		cnt[a[i]]++;
	}
	vector<int> ans;
	for (int i=0;i<=k;i++)
	{
		while (cnt[i]--)
			ans.push_back(i);
		if (i<k)
		{
			auto x=se.begin();
			if (*x<=i)
			{
				cout<<-1<<endl;
				return 0;
			}
			ans.push_back(*x);
			se.erase(x);
		}
	}
	reverse(ans.begin(),ans.end());
	for (int i:ans)
		cout<<i<<' ';
	cout<<endl;
	
	return 0;
}
#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...
#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...