제출 #1226532

#제출 시각아이디문제언어결과실행 시간메모리
1226532ericl23302메기 농장 (IOI22_fish)C++20
12 / 100
57 ms15176 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) { vector<ll> vals(N, 0); for (int i = 0; i < M; ++i) vals[X[i]] += W[i]; vector<vector<ll>> dp(N + 1, vector<ll>(4, 0)); dp[0][1] = dp[0][2] = dp[0][3] = LLONG_MIN / 2; for (int i = 0; i < N; ++i) { vector<ll> &prevDp = dp[i], &curDp = dp[i + 1]; for (int a = 0; a < 4; ++a) { for (int b = 0; b < 4; ++b) { if ((a % 2) + (b < 2) != 1) continue; if (b % 2 == 0) { if (a % 2) curDp[b] = max(curDp[b], prevDp[a] + vals[i]); else curDp[b] = max(curDp[b], prevDp[a]); } else { if (a) curDp[b] = max(curDp[b], prevDp[a]); else curDp[b] = max(curDp[b], prevDp[a] + (i ? vals[i - 1] : 0)); } } } } return *max_element(dp[N].begin(), dp[N].end()); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...