| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1369880 | retr0foxx | Catfish Farm (IOI22_fish) | C++20 | 0 ms | 0 KiB |
std::vector<signed> _W) {
N = _N; M = _M;
X = std::move(_X);
Y = std::move(_Y);
W = std::move(_W);
for (int i = 0; i < M; ++i)
WA[X[i]] = W[i];
dp[0] = N > 1 ? WA[1] : 0;
dpm[0] = dp[0];
for (int i = 1; i < N; ++i)
{
int nxv = (i+1 < N ? WA[i+1] : 0);
dp[i] = std::max({
WA[i-1], // alone
dp[i-1] - WA[i],
i-2 < 0 ? 0 : (dp[i-2]), // WA[i-1] contributed by.. dp[i-2]
i-3 < 0 ? 0 : (dpm[i-3] + WA[i-1])
}) + nxv;
dpm[i] = std::max(dpm[i-1], dp[i]);
//printf("dp[%i] = %i, dpm=%i\n", i, dp[i], dpm[i]);
}
return dpm[N-1];
}
