Submission #65186

#TimeUsernameProblemLanguageResultExecution timeMemory
65186spencercomptonZalmoxis (BOI18_zalmoxis)C++14
100 / 100
544 ms83568 KiB
#include <bits/stdc++.h>
using namespace std;
int n, k;
void f(int now){
	if(now==0 || k==0){
		cout << " " << now;
		return;
	}
	k--;
	f(now-1);
	f(now-1);
}
int main(){
	cin >> n >> k;
	vector<pair<int, int> > li;
	for(int i = 0; i<n; i++){
		int x;
		cin >> x;
		li.push_back(make_pair(i,x));
	}
	vector<pair<int, int> > cur;
	cur = li;
	vector<int> add[n];
	int use = 0;
	for(int i = 0; i<30; i++){
		vector<pair<int, int> > nxt;
		nxt.push_back(cur[0]);
		for(int j = 1; j<cur.size(); j++){
			int bef = nxt.back().second;
			int now = cur[j].second;
			if(bef==i){
				if(now==i){
					nxt.back().second++;
					nxt.back().first = cur[j].first;
				}
				else{
					nxt.back().second++;
					add[nxt.back().first].push_back(i);
					k--;
					use++;
					nxt.push_back(cur[j]);
				}
			}
			else{
				nxt.push_back(cur[j]);
			}
		}
		if(nxt.back().second==i){
			nxt.back().second++;
			add[nxt.back().first].push_back(i);
			k--;
			use++;
		}
		cur = nxt;
	}
	for(int i = 0; i<n; i++){
		if(i>0){
			cout << " ";
		}
		cout << li[i].second;
		for(int j = 0; j<add[i].size(); j++){
			f(add[i][j]);
		}
	}
	cout << endl;
}

Compilation message (stderr)

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:28:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j = 1; j<cur.size(); j++){
                  ~^~~~~~~~~~~
zalmoxis.cpp:61:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j = 0; j<add[i].size(); j++){
                  ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...