Submission #862083

#TimeUsernameProblemLanguageResultExecution timeMemory
862083iskhakkutbilimZalmoxis (BOI18_zalmoxis)C++17
0 / 100
1076 ms8280 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, int depth){ if(x <= 0) return; if(cur > n) return; if(cur >= n or a[cur] >= x){ ans.push_back(x); if(a[cur] == x) cur++; // cur++; }else{ f(x-1, depth + 1); f(x-1, depth + 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, 1); 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:27:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   27 | main(){
      | ^~~~
zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:44: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]
   44 |  if(ans.size() == n + k){
      |     ~~~~~~~~~~~^~~~~~~~
zalmoxis.cpp:57: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]
   57 |   for(int i = 1;i < ans.size(); i++) cout << ans[i] << ' ';
      |                 ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...