Submission #1310050

#TimeUsernameProblemLanguageResultExecution timeMemory
1310050hyyhJelly Flavours (IOI20_jelly)C++20
0 / 100
2100 ms157928 KiB
#include "jelly.h" #include <vector> #include <math.h> #include <iostream> #include <cstring> using namespace std; int const N2 = 10010; int dp[2][N2][2010]; int find_maximum_unique(int x, int y, std::vector<int> a, std::vector<int> b) { int n = a.size(); int ans = 0; memset(dp,-1,sizeof dp); dp[0][0][0] = 0; int sum = 0; for(int i = 1;i <= n;i++){ sum += a[i-1]; sum = min(sum,x); for(int j = 0;j <= sum;j++){ for(int k = 1;k <= n;k++){ if(dp[abs((i-1)%2)][j][k-1] != -1) dp[i%2][j][k] = dp[abs((i-1)%2)][j][k-1]+b[i-1]; if(j-a[i-1] >= 0 && dp[abs((i-1)%2)][j-a[i-1]][k-1] != -1){ if(dp[i%2][j][k] == -1) dp[i%2][j][k] = dp[abs((i-1)%2)][j-a[i-1]][k-1]; else dp[i%2][j][k] = min(dp[i%2][j][k],dp[abs((i-1)%2)][j-a[i-1]][k-1]); } if(dp[i%2][j][k] <= y && dp[i%2][j][k] != -1) ans = max(ans,k); //cout << dp[i%2][j][k] << "/"; } //cout << " "; } //cout << endl; } 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...