Submission #1169234

#TimeUsernameProblemLanguageResultExecution timeMemory
1169234RoupiqJelly Flavours (IOI20_jelly)C++20
35 / 100
2097 ms51016 KiB
#include "jelly.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;

#define maxeq(a, b) a = max(a, b)

template <typename T>
ostream &operator<<(ostream &o, const vector<T> &v)
{
	o << "[";
	for (int i = 0; i < size(v); i++)
	{
		o << (i ? "," : "") << v[i];
	}
	o << "]";
	return o;
}

int dp_solve(int x, int y, std::vector<int> a, std::vector<int> b)
{
	vector<vector<int>> dp;
	dp.resize(x + 1, vector<int>(y + 1, INT_MIN));
	dp[0][0] = 0;
	for (int p = 0; p < size(a); p++)
	{
		for (int i = x; i >= 0; i--)
		{
			for (int j = y; j >= 0; j--)
			{
				if (i - a[p] >= 0)
					maxeq(dp[i][j], dp[i - a[p]][j] + 1);
				if (j - b[p] >= 0)
					maxeq(dp[i][j], dp[i][j - b[p]] + 1);
			}
		}
	}
	int res = 0;
	for (int i = 0; i <= x; i++)
	{
		for (int j = 0; j <= y; j++)
		{
			maxeq(res, dp[i][j]);
		}
	}
	return res;
}

int find_maximum_unique(int x, int y, std::vector<int> a, std::vector<int> b)
{
	int n = dp_solve(x, y, a, b);
	return 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...