제출 #543780

#제출 시각아이디문제언어결과실행 시간메모리
543780Sho10Jelly Flavours (IOI20_jelly)C++17
0 / 100
144 ms285204 KiB
#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>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=0;i<n;i++) { for(ll j=x-a[i];j>=0;j--) { dp1[i+1][j+a[i]]=dp1[i][j+a[i]]; if(dp1[i][j+a[i]].s+b[i]<=y){ dp1[i+1][j+a[i]].f++; dp1[i+1][j+a[i]].s+=b[i]; } if(dp1[i][j].f>dp1[i+1][j+a[i]].f){ dp1[i+1][j+a[i]]=dp1[i][j]; dp1[i+1][j+a[i]].f++; }else if(dp1[i][j].f+1==dp1[i+1][j+a[i]].f){ dp1[i+1][j+a[i]].s=min(dp1[i+1][j+a[i]].s,dp1[i][j].s); } } for(ll j=y-b[i];j>=0;j--) { dp2[i+1][j+b[i]]=dp2[i][j+b[i]]; if(dp2[i][j+b[i]].s+a[i]<=x){ dp2[i+1][j+b[i]].f++; dp2[i+1][j+b[i]].s+=a[i]; } if(dp2[i][j].f>dp2[i+1][j+b[i]].f){ dp2[i+1][j+b[i]]=dp2[i][j]; dp2[i+1][j+b[i]].f++; }else if(dp2[i][j].f+1==dp2[i+1][j+b[i]].f){ dp2[i+1][j+b[i]].s=min(dp2[i+1][j+b[i]].s,dp2[i][j].s); } } } ll ans=0; for(ll i=0;i<=x;i++) { ans=max(ans,dp1[n][i].f); } for(ll i=0;i<=y;i++) { ans=max(ans,dp2[n][i].f); } return ans; } /* int32_t main(){ CODE_START; #ifdef LOCAL ifstream cin("input.txt"); #endif */
#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...