Submission #862089

#TimeUsernameProblemLanguageResultExecution timeMemory
862089iskhakkutbilimZalmoxis (BOI18_zalmoxis)C++17
0 / 100
1069 ms10324 KiB
#include <bits/stdc++.h>
using namespace std;

#define ff first
#define ss second
#define all(a) a.begin(), a.end()
#define  int long long
int n, k;
vector<int> ans;
int cur;
vector<int> a;
void f(int x){
	if(x <= 0) return;
	if(cur >= n or a[cur] >= x){
		ans.push_back(x);
		if(cur < n && a[cur] == x) cur++;
	}else{
		f(x-1);
		f(x-1);
	}
	
}


main(){
	cin >> n >> k;
	a.resize(n);
	for(int i = 0;i < n; i++){
		cin >> a[i];
	}
	/*
	5 1
	28 25 25 26 27
	
	6 1
	28 25 25 26 27 29
	
	5 1
	28  25 26 27 29
	*/
	f(30);
	if(ans.size() == n + k){
		for(int x : ans) cout << x << ' ';
		return 0;
	}
	if(ans.back() > 1){
		int bk = ans.back();
		ans.pop_back();
		ans.push_back(bk-1);
		ans.push_back(bk-1);
		for(int x : ans) cout << x << ' ';
	}else if(ans[0] > 1){
		int bk = ans[0];
		cout << bk-1 << ' ' << bk-1 << ' ';
		for(int i = 1;i < ans.size(); i++) cout << ans[i] << ' ';
	}else{
		assert(false);
	}
//	while(ans.size() < n + k){
//		vector<int> have = ans;
//		vector<int> merge;
//		ans.clear();
//		for(int i = 0;i < have.size(); i++){
//			if(have[i] > 1){
//				f(have[i]-1, 1);
//				f(have[i]-1, 1);
//				for(int j = 0;j < i; j++) merge.push_back(have[j]);
//				for(int x : ans) merge.push_back(x);
//				for(int j = i + 1; j < have.size(); j++){
//					merge.push_back(have[j]);
//				}
//				break;
//			}
//		}
//		if(merge.empty()) assert(false);
//		ans = merge;
//	}
//	for(int i = 0;i < ans.size(); i++) cout << ans[i] << ' ';
	return 0;
}

Compilation message (stderr)

zalmoxis.cpp:25:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   25 | main(){
      | ^~~~
zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:42:16: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   42 |  if(ans.size() == n + k){
      |     ~~~~~~~~~~~^~~~~~~~
zalmoxis.cpp:55:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |   for(int i = 1;i < ans.size(); i++) cout << ans[i] << ' ';
      |                 ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...