#include <bits/stdc++.h>
#include "jelly.h"
using namespace std;
typedef long long ll;
const int MAXN = 2e3 + 5;
const int MAXX = 1e4 + 5;
int dppref[MAXN][MAXX];
int dpsuff[MAXN][MAXX];
int find_maximum_unique(int x, int y, vector<int> a, vector<int> b){
    vector<pair<int,int>> c;
    int n = a.size();
    for(int i = 0; i < n; ++i){
        c.push_back({a[i], b[i]});
    }
    sort(c.begin(),c.end());
    // for(auto u : c){
    //     cout << u.first << " " << u.second << " u\n";
    // }
    ll s = 0;
    for(int i = 1; i <= n; ++i){
        s += b[i];
        dppref[i][0] = s;
    }
    for(int i = 1; i <= n; ++i){
        for(int j = 1; j <= x; ++j){
            dppref[i][j] = dppref[i-1][j] + c[i-1].second;
            //cout << i << " " << j << " " << dppref[i][j] << " prefb4\n";
            //cout << j << " " << c[i-1].first << "\n";
            if(j >= c[i-1].first) dppref[i][j] = min(dppref[i][j], dppref[i-1][j - c[i-1].first]);
            //cout << i << " " << j << " " << dppref[i][j] << " pref\n";
        }
    }
    for(int i = n-1; i >= 0; --i){
        for(int j = 1; j <= y; ++j){
            dpsuff[i][j] = dpsuff[i+1][j];
            if(j >= c[i].second){
                dpsuff[i][j] = max(dpsuff[i][j], dpsuff[i+1][j - c[i].second] + 1);
            }
        }
    }
    int w = 0;
    for(int i = 0; i <= n; ++i){
        if(dppref[i][x] > y) continue;
        //cout << i << " dp " << dppref[i][x] << " y " << y << " suff " << dpsuff[i][y - dppref[i][x]] << " db\n";
        w = max(w, i + dpsuff[i][y - dppref[i][x]]);
    }
    return w;
}
| # | 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... |