Submission #1169249

#TimeUsernameProblemLanguageResultExecution timeMemory
1169249Szymon_PilipczukJelly Flavours (IOI20_jelly)C++20
14 / 100
63 ms888 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...