답안 #861852

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
861852 2023-10-17T05:09:24 Z maks007 Zalmoxis (BOI18_zalmoxis) C++14
30 / 100
120 ms 27892 KB
#include "bits/stdc++.h"

using namespace std;

#define int long long

int k;
vector <pair <int,int>> ans;
vector <int> a;

void decomp(int v) {
	stack <int> st;
	st.push(v);
	if(k > (1 << v)) {
		k -= (1 << v);
		for(int i = 0; i < (1 << v); i ++) cout << 0 << " ";
		return;
	}
	while(1) {
		if(st.size() == k) break;
		int v = st.top();
		st.pop();
		if(v == 0) {
			cout << 0 << " ";
			k --;
			continue;
		}
		st.push(v-1);
		st.push(v-1);
	}
	k -= st.size();
	while(!st.empty()) {
		cout << st.top() << " ";
		st.pop();
	}
}

void f(int v) {
	if(a.size() == 0) {
		ans.push_back({v, 1});
		return;
	}
	if(v == a.back()) {
		ans.push_back({v,0});
		a.pop_back();
		return;
	}
	if(a.back() > v) {
		ans.push_back({v,1});
		return;
	}
	f(v-1);
	f(v-1);
}

signed main () {
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	int n, cnt = 0;
	cin >> n >> k;
	for(int i = 0; i < n; i ++) {
		int x;
		cin >> x;
		a.push_back(x);
	}
	reverse(a.begin(), a.end());

	f(30);
	// for(auto i : ans) {
	// 	cout << i.first << " " << i.second <<  "\n";
	// }
	for(auto i : ans) {
		if(i.second == 0) cout << i.first << " ";
		else if(k){
			decomp(i.first);
		}
	}
	return 0;
}

Compilation message

zalmoxis.cpp: In function 'void decomp(long long int)':
zalmoxis.cpp:20:16: warning: comparison of integer expressions of different signedness: 'std::stack<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   20 |   if(st.size() == k) break;
      |      ~~~~~~~~~~^~~~
zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:59:9: warning: unused variable 'cnt' [-Wunused-variable]
   59 |  int n, cnt = 0;
      |         ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 103 ms 27684 KB Output is correct
2 Correct 102 ms 27892 KB Output is correct
3 Correct 104 ms 27700 KB Output is correct
4 Correct 107 ms 27540 KB Output is correct
5 Correct 115 ms 27848 KB Output is correct
6 Correct 104 ms 27432 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 103 ms 27436 KB not a zalsequence
2 Incorrect 102 ms 27688 KB not a zalsequence
3 Incorrect 102 ms 27692 KB not a zalsequence
4 Incorrect 102 ms 27688 KB not a zalsequence
5 Incorrect 103 ms 27496 KB not a zalsequence
6 Incorrect 120 ms 27712 KB not a zalsequence
7 Incorrect 105 ms 27524 KB not a zalsequence
8 Incorrect 104 ms 27876 KB not a zalsequence
9 Incorrect 96 ms 26684 KB not a zalsequence
10 Incorrect 69 ms 12696 KB not a zalsequence
11 Incorrect 82 ms 22336 KB not a zalsequence
12 Incorrect 49 ms 2376 KB not a zalsequence
13 Incorrect 52 ms 2380 KB not a zalsequence
14 Incorrect 50 ms 2260 KB not a zalsequence