제출 #439767

#제출 시각아이디문제언어결과실행 시간메모리
439767gromperenKarte (COCI18_karte)C++14
120 / 120
423 ms33324 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long

const int INF = 1e9;

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);

	int n, k; cin >> n >> k;
	int t = k;
	vector<int> a(n);
	multiset<int> b;
	b.insert(INF);
	for (int i = 0; i < n; ++i) {
		cin >> a[i];
		b.insert(a[i]);
	}
	vector<int> ans;
	for (int i = 0; i < n; ++i) {
		int cur = *b.lower_bound(k);
		if (cur == INF) cur = *b.begin();
		ans.push_back(cur);
		if (cur != k) k--;
		b.erase(b.find(cur));
	}
	int cnt = 0;
	for (int i = n-1; i >= 0; --i) {
		if (ans[i] > cnt) cnt++;
	}
	if (cnt == t) {
		for (int i = 0; i < n; ++i) cout << ans[i] << " ";
		cout << "\n";
	} else  {
		cout << "-1\n";
	}


	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...