aboutsummaryrefslogtreecommitdiff
path: root/algorithm-contest-2/solution/5.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-10-25 17:16:31 +0800
committercrupest <crupest@outlook.com>2020-10-25 17:17:13 +0800
commit1e05f756960c0b0c7fbd5acc11e5c0ae29134dcc (patch)
tree0d04f01fb53f42c64236f804f0961ed353930b22 /algorithm-contest-2/solution/5.cpp
parent17efe0b0bc81ac70418c23af7aec620d8c1f858d (diff)
downloadlife-1e05f756960c0b0c7fbd5acc11e5c0ae29134dcc.tar.gz
life-1e05f756960c0b0c7fbd5acc11e5c0ae29134dcc.tar.bz2
life-1e05f756960c0b0c7fbd5acc11e5c0ae29134dcc.zip
Add algorithm contest 2.
Diffstat (limited to 'algorithm-contest-2/solution/5.cpp')
-rw-r--r--algorithm-contest-2/solution/5.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/algorithm-contest-2/solution/5.cpp b/algorithm-contest-2/solution/5.cpp
new file mode 100644
index 0000000..b668f95
--- /dev/null
+++ b/algorithm-contest-2/solution/5.cpp
@@ -0,0 +1,49 @@
+#include <iostream>
+#include <cstdio>
+#include <cstring>
+#include <algorithm>
+#include <vector>
+#include <queue>
+#include <stack>
+#include <set>
+#include <map>
+#include <cmath>
+#include <unordered_map>
+#include <unordered_set>
+#include <string>
+#include <sstream>
+#include <climits>
+#define x first
+#define y second
+#define pub push_back
+#define mp make_pair
+#define ll long long
+using namespace std;
+typedef pair<int, int> 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