답안 #431014

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
431014 2021-06-17T08:56:11 Z faresbasbs Zalmoxis (BOI18_zalmoxis) C++14
10 / 100
520 ms 48532 KB
#include <bits/stdc++.h>
using namespace std;
vector<int> v[1000001];
int n,k,arr[1000001];

void solve(int l , int r , int val , int freq){
	if(r == l-1){
		for(int i = 0 ; i < 30 ; i += 1){
			if(freq & (1<<i)){
				v[r].push_back(val+i);
				k -= 1;
			}
		}
		return ;
	}
	int pos = -1;
	for(int i = l ; i <= r ; i += 1){
		if(arr[i] == val){
			pos = i;
			break;
		}
	}
	if(pos == -1){
		solve(l,r,val-1,2*freq);
		return ;
	}
	int farr[31];
	memset(farr,0,sizeof farr);
	for(int i = l ; i < pos ; i += 1){
		farr[arr[i]] += 1;
	}
	int tag = 0;
	for(int i = 0 ; i < val ; i += 1){
		farr[i+1] += farr[i]/2;
		if(farr[i]%2 == 1){
			tag = 1;
		}
	}
	freq -= 1;
	if(pos < r && arr[pos+1] == val){
		freq -= 1;
		solve(l,pos-1,val,farr[val]+tag),solve(pos+2,r,val,freq-farr[val]-tag);
		return ;
	}
	solve(l,pos-1,val,farr[val]+tag),solve(pos+1,r,val,freq-farr[val]-tag);
}

int main(){
	cin >> n >> k;
	int kk = k;
	for(int i = 1 ; i <= n ; i += 1){
		cin >> arr[i];
	}
	solve(1,n,30,1);
	vector<int> varr;
	for(int i = 0 ; i <= n ; i += 1){
		for(auto j : v[i]){
			varr.push_back(j);
		}
		if(i){
			varr.push_back(arr[i]);
		}
	}
	vector<int> ans;
	while(k > 0){
		if(varr.back() > 0){
			k -= 1;
			int a = varr.back();
			varr.pop_back();
			varr.push_back(a-1),varr.push_back(a-1);
		}else{
			ans.push_back(varr.back());
			varr.pop_back();
		}
	}
	while(varr.size()){
		ans.push_back(varr.back());
		varr.pop_back();
	}
	reverse(ans.begin(),ans.end());
	for(auto i : ans){
		cout << i << " ";
	}cout << endl;
}

Compilation message

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:50:6: warning: unused variable 'kk' [-Wunused-variable]
   50 |  int kk = k;
      |      ^~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 441 ms 37760 KB not a zalsequence
2 Incorrect 423 ms 37764 KB not a zalsequence
3 Incorrect 460 ms 37756 KB not a zalsequence
4 Correct 447 ms 37756 KB Output is correct
5 Correct 493 ms 37756 KB Output is correct
6 Incorrect 520 ms 37704 KB not a zalsequence
# 결과 실행 시간 메모리 Grader output
1 Incorrect 461 ms 37760 KB doesn't contain S as a subsequence
2 Incorrect 456 ms 37784 KB Expected EOF
3 Incorrect 470 ms 37756 KB doesn't contain S as a subsequence
4 Incorrect 467 ms 37804 KB not a zalsequence
5 Incorrect 443 ms 37764 KB doesn't contain S as a subsequence
6 Incorrect 454 ms 37764 KB doesn't contain S as a subsequence
7 Incorrect 435 ms 37760 KB doesn't contain S as a subsequence
8 Incorrect 458 ms 37760 KB not a zalsequence
9 Incorrect 419 ms 48532 KB Expected EOF
10 Incorrect 239 ms 37968 KB not a zalsequence
11 Incorrect 321 ms 47316 KB Expected EOF
12 Incorrect 129 ms 29788 KB not a zalsequence
13 Incorrect 128 ms 29724 KB not a zalsequence
14 Incorrect 129 ms 29736 KB not a zalsequence