Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- void pop_front(std::vector<int> &v)
- {
- if (v.size() > 0) {
- v.erase(v.begin());
- }
- }
- vector<int> helper(vector<int> nums, int c_len)
- {
- vector<int> ans;
- int ln = nums.size();
- for(int i=0;i<ln;i++)
- {
- while(ans.size()>0 && ans.back()<nums[i] && ((ln-i) > (c_len-ans.size())))
- ans.pop_back();
- if(ans.size()<c_len)
- ans.push_back(nums[i]);
- }
- // Return the ans
- return ans;
- }
- vector<int> maxNumber(vector<int> nums1, vector<int> nums2,int k)
- {
- int l1 = nums1.size();
- int l2 = nums2.size();
- vector<int> rs;
- for(int s1=max(0, k-l2);s1<=min(k, l1);s1++)
- {
- vector<int> p1,p2;
- p1 = helper(nums1, s1);
- p2 = helper(nums2, k-s1);
- vector<int> temp;
- for(int j=0;j<k;j++)
- {
- vector<int> temp2 = max(p1,p2);
- int fr = temp2.front();
- if(p1>p2)
- pop_front(p1);
- else
- pop_front(p2);
- temp.push_back(fr);
- }
- rs = max(rs, temp);
- }
- return rs;
- }
- // Driver Code
- int main()
- {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- int n;
- cin>>n;
- vector<int> v(n);
- for(int &x:v){
- cin>>x;
- }
- int m;
- cin>>m;
- vector<int> v1(m);
- for(int &x : v1){
- cin>>x;
- }
- int p;
- cin>>p;
- vector<int> res = maxNumber(v, v1, p);
- for(int i=0;i<res.size();i++)
- cout<<res[i]<<" ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement