Submission #476400

#TimeUsernameProblemLanguageResultExecution timeMemory
476400starplatJelly Flavours (IOI20_jelly)C++14
33 / 100
82 ms1228 KiB
#include <bits/stdc++.h> #define f first #define s second using namespace std; pair<int,int> v[2005],dp[100005]; pair<int,int> cmp(pair<int,int> a,pair<int,int> b) { if (a.f==-1) return b; if (a.f<b.f) return b; if (a.f==b.f&&a.s>b.s) return b; return a; } int find_maximum_unique(int x,int y,vector<int> a, vector<int> b) { int n=a.size(); int ans=0; pair<int,int> v[2005],dp[100005]; for (int i=1;i<=n;i++){ v[i]={a[i-1],b[i-1]}; } for (int i=1;i<=x;i++) dp[i]={-1,-1}; dp[1]={0,0}; sort(v+1,v+1+n); for (int i=1;i<=n;i++){ for (int j=x;j>=0;j--){ if (dp[j].f==-1) continue; if (j+v[i].f<=x){ dp[j+v[i].f]=cmp(dp[j+v[i].f],{dp[j].f+1,dp[j].s}); } if (dp[j].s+v[i].s<=y){ dp[j]=cmp(dp[j],{dp[j].f+1,dp[j].s+v[i].s}); } } } for (int i=0;i<=x;i++){ if (dp[i].f!=-1&&dp[i].s<=y) ans=max(dp[i].f,ans); } return ans; }
#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...