Submission #862073

#TimeUsernameProblemLanguageResultExecution timeMemory
862073iskhakkutbilimZalmoxis (BOI18_zalmoxis)C++17
0 / 100
118 ms5444 KiB
#include <bits/stdc++.h> using namespace std; #define ff first #define ss second #define all(a) a.begin(), a.end() int n, k; vector<int> ans; int st[35]; vector<int> First[35]; int del, idx; void f(int x, int depth){ if(x <= 0) return; int mn = 1; while(st[mn] <= 0 && 31 >= mn) mn++; if(mn > x){ ans.push_back(x); st[x]--; del++; }else if(First[x].empty() or First[x].back() + del > ans.size() + 1){ f(x-1, depth + 1); f(x-1, depth + 1); }else if(First[x].back() + del <= ans.size() + 1){ ans.push_back(x); First[x].pop_back(); st[x]--; }else assert(false); } main(){ cin >> n >> k; for(int i = 0;i < n; i++){ int x; cin >> x; st[x]++; First[x].push_back(i + 1); } for(int i = 1;i <= 30; i++){ reverse(all(First[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); // 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: In function 'void f(int, int)':
zalmoxis.cpp:21:53: warning: comparison of integer expressions of different signedness: '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |  }else if(First[x].empty() or First[x].back() + del > ans.size() + 1){
      |                               ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
zalmoxis.cpp:24:33: warning: comparison of integer expressions of different signedness: '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |  }else if(First[x].back() + del <= ans.size() + 1){
      |           ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
zalmoxis.cpp: At global scope:
zalmoxis.cpp:33:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   33 | main(){
      | ^~~~
zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:73:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   73 |  for(int i = 0;i < ans.size(); i++) cout << ans[i] << ' ';
      |                ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...