This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho
#include "jelly.h"
using ll=long long;
using ld=long double;
int const INF=1000000005;
ll const LINF=1000000000000000005;
ll const mod=1000000007;
ld const PI=3.14159265359;
ll const MAX_N=3e5+5;
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define endl '\n'
#define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
pair<ll,ll>a[2005];
ll dp1[2005][10005],dp2[2005][10005];
int find_maximum_unique(int x,int y,vector<int>A,vector<int>B){
ll n=A.size();
for(ll i=1;i<=n;i++)
{
a[i].f=A[i-1];
a[i].s=B[i-1];
}
sort(a+1,a+n+1);
for(ll i=0;i<=n;i++)
{
for(ll j=0;j<=x;j++){
dp1[i][j]=LINF;
}
for(ll j=0;j<=y;j++)
{
dp2[i][j]=LINF;
}
}
for(ll j=0;j<=y;j++)
{
dp2[n][j]=0;
}
dp1[0][0]=0;
for(ll i=1;i<=n;i++)
{
for(ll j=0;j<=x;j++)
{
ll val=j-a[i].f;
if(val>=0){
dp1[i][j]=min(dp1[i][j],dp1[i-1][val]);
}
if(dp1[i-1][j]!=LINF){
ll nr=dp1[i-1][j]+a[i].s;
if(nr<=y){
dp1[i][j]=min(dp1[i][j],nr);
}
}
}
}
for(ll i=n-1;i>=0;i--)
{
for(ll j=0;j<=y;j++)
{
dp2[i][j]=dp2[i+1][j];
ll val=j-a[i+1].s;
if(val>=0){
dp2[i][j]=max(dp2[i][j],dp2[i+1][val]+1);
}
}
}
ll ans=0;
for(ll i=0;i<=n;i++)
{
for(ll j=0;j<=x;j++)
{
ll nr=dp1[i][j];
if(nr!=LINF){
ans=max(ans,i+dp2[i][y-nr]);
}
}
}
int res=ans;
return res;
}
/*
int32_t main(){
CODE_START;
#ifdef LOCAL
ifstream cin("input.txt");
#endif
*/
# | 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... |