#include <bits/stdc++.h>
using namespace std;
int find_maximum_unique(int x,int y,vector<int> a,vector<int> b)
{
sort(a.begin(),a.end());
int sm[a.size()];
int sp[a.size()];
sp[0] = a[0];
for(int i =1 ;i<a.size();i++)
{
sp[i] = sp[i-1]+a[i];
}
vector<int> p ={x};
unordered_set<int> pe;
int mn =x;
for(int i =0 ;i<a.size();i++)
{
for(int j = 0;j<p.size();j++)
{
if(p[j] >= a[i] && pe.find(p[j]-a[i]) == pe.end())
{
pe.insert(p[j]-a[i]);
p.push_back(p[j]-a[i]);
mn = min(mn,p[j]-a[i]);
}
}
sm[i] = mn;
}
int l = 0;
int r = a.size()+1;
while(l+1 < r)
{
int mid = (l+r)/2;
if(x-sm[mid-1] + y >= sp[mid-1])
{
l = mid;
}
else
{
r = mid;
}
}
return l;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |