From 58e4c77b1d5f8241af91c55e1a8efaba3115dc6b Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 25 Oct 2020 17:16:31 +0800 Subject: import(life): Add algorithm contest 2. --- works/life/algorithm-contest-2/solution/5.cpp | 49 +++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 works/life/algorithm-contest-2/solution/5.cpp (limited to 'works/life/algorithm-contest-2/solution/5.cpp') diff --git a/works/life/algorithm-contest-2/solution/5.cpp b/works/life/algorithm-contest-2/solution/5.cpp new file mode 100644 index 0000000..b668f95 --- /dev/null +++ b/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