답안 #862089

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
862089 2023-10-17T14:01:42 Z iskhakkutbilim Zalmoxis (BOI18_zalmoxis) C++17
0 / 100
1000 ms 10324 KB
#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

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] << ' ';
      |                 ~~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1024 ms 10284 KB Time limit exceeded
2 Execution timed out 1055 ms 10320 KB Time limit exceeded
3 Execution timed out 1054 ms 10156 KB Time limit exceeded
4 Execution timed out 1061 ms 10288 KB Time limit exceeded
5 Execution timed out 1044 ms 10068 KB Time limit exceeded
6 Execution timed out 1036 ms 10280 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1036 ms 10288 KB Time limit exceeded
2 Execution timed out 1050 ms 10068 KB Time limit exceeded
3 Execution timed out 1052 ms 10156 KB Time limit exceeded
4 Execution timed out 1048 ms 10292 KB Time limit exceeded
5 Execution timed out 1065 ms 10324 KB Time limit exceeded
6 Execution timed out 1032 ms 10320 KB Time limit exceeded
7 Execution timed out 1029 ms 10152 KB Time limit exceeded
8 Execution timed out 1012 ms 10324 KB Time limit exceeded
9 Execution timed out 1069 ms 8276 KB Time limit exceeded
10 Execution timed out 1042 ms 3160 KB Time limit exceeded
11 Execution timed out 1018 ms 5456 KB Time limit exceeded
12 Execution timed out 1047 ms 348 KB Time limit exceeded
13 Execution timed out 1032 ms 344 KB Time limit exceeded
14 Incorrect 0 ms 348 KB Unexpected end of file - int32 expected