Submission #1310043

#TimeUsernameProblemLanguageResultExecution timeMemory
1310043hyyhJelly Flavours (IOI20_jelly)C++20
0 / 100
2095 ms576 KiB
#include "jelly.h"
#include <vector>
#include <math.h>
#include <iostream>
#include <cstring>

using namespace std;

int const N2 = 10000;

int dp[2][N2][2];

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;
	for(int i = 1;i <= n;i++){
		for(int j = 0;j < x;j++){
			for(int k = 1;k <= n;k++){
				if(dp[abs((i-1)%2)][j][abs((k-1)%2)] != -1) dp[i%2][j][k%2] = dp[abs((i-1)%2)][j][abs((k-1)%2)]+b[i-1];
				if(j-a[i-1] >= 0 && dp[abs((i-1)%2)][j-a[i-1]][abs((k-1)%2)] != -1) dp[i%2][j][k%2] = min(dp[i%2][j][k%2],dp[abs((i-1)%2)][j-a[i-1]][abs((k-1)%2)]);
				if(dp[i%2][j][k%2] <= y) ans = max(ans,k);
				//cout << dp[i%2][j][k%2] << "/";
			}
			//cout << " ";
		}
		//cout << endl;
	}
	return ans-1;
}
#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...