From 99e2e923d0c77b02f3fb4ff648ea916954868606 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- .../works/life/algorithm-contest-2/solution/5.cpp | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 store/works/life/algorithm-contest-2/solution/5.cpp (limited to 'store/works/life/algorithm-contest-2/solution/5.cpp') diff --git a/store/works/life/algorithm-contest-2/solution/5.cpp b/store/works/life/algorithm-contest-2/solution/5.cpp new file mode 100644 index 0000000..b668f95 --- /dev/null +++ b/store/works/life/algorithm-contest-2/solution/5.cpp @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define x first +#define y second +#define pub push_back +#define mp make_pair +#define ll long long +using namespace std; +typedef pair PII; + +int dp[1005][5][1005]; +int n, K, a[1005]; + +int main(void) { + // freopen("3.in", "r", stdin); + cin >> n >> K; + for (int i = 1; i <= n; i++) cin >> a[i]; + + for (int i = 0; i < 1005; i++) + for (int j = 0; j < 4; j++) + for (int k = 0; k < 1005; k++) + dp[i][j][k] = INT_MIN; + + dp[0][0][0] = 0; + + for (int i = 1; i <= n; i++) + for (int j = 0; j <= 4; j++) + for (int k = 0; k < K; k++) { + if (j == 0) dp[i][j][k] = dp[i - 1][j][k]; + else dp[i][j][k] = max(dp[i - 1][j][k], dp[i - 1][j - 1][((k - a[i]) % K + K) % K] + a[i]); + } + + + cout << dp[n][4][0]; + return 0; +} \ No newline at end of file -- cgit v1.2.3