Submission #1169173

#TimeUsernameProblemLanguageResultExecution timeMemory
1169173mkolko21Jelly Flavours (IOI20_jelly)C++20
54 / 100
234 ms194044 KiB
#include <iostream> #include <vector> using namespace std; int dp[2'007][10'007]; int dyn[207][507][507]; int find_maximum_unique(int x, int y, vector<int> fir, vector<int> sec) { int n=fir.size(); if(n<205 && x<505 && y<505) { for(int a=0; a<n; a++){ for(int i=0; i<=x; i++){ for(int j=0; j<=y; j++){ dyn[a+1][i][j]=max(dyn[a+1][i][j],dyn[a][i][j]); if(i+fir[a]<=x) dyn[a+1][i+fir[a]][j]=max(dyn[a+1][i+fir[a]][j],dyn[a][i][j]+1); if(j+sec[a]<=y) dyn[a+1][i][j+sec[a]]=max(dyn[a+1][i][j+sec[a]],dyn[a][i][j]+1); } } } return dyn[n][x][y]; } for(int a=0; a<n; a++){ for(int i=0; i<=x; i++){ dp[a+1][i]=max(dp[a+1][i],dp[a][i]); if(sec[a]==0) dp[a+1][i]=max(dp[a+1][i],dp[a][i]+1); if(i+fir[a]<=x) dp[a+1][i+fir[a]]=max(dp[a][i]+1,dp[a+1][i+fir[a]]); } } int odp=dp[n][x]; if(y!=0){ if(sec[0]==0) odp=n; else odp+=y/sec[0]; } return min(odp,n); }
#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...