| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1332497 | opeleklanos | 메기 농장 (IOI22_fish) | C++20 | 0 ms | 0 KiB |
ll max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w){
vector<ll> arr;
arr.assign(n, 0);
if(n == 2){
return max(arr[0], arr[1]);
}
for(ll i = 0; i<m; i++) arr[x[i]] = w[i];
vector<ll> dp(n, 0);
dp[0] = arr[1];
dp[1] = arr[0] + arr[2];
ll mxPier = 0;
for(ll i = 2; i<n; i++){
if(i<n-1) dp[i] = max((i>=3?dp[i-3]:0) + arr[i-1]+ arr[i+1], max(dp[i-2] + arr[i+1], dp[i-1] + arr[i+1]-arr[i]));
else dp[i] = ((i>=3)?dp[i-3]:0) + arr[i-1];
}
ll mx = 0;
for(ll i = 0; i<n; i++) mx = max(mx, dp[i]);
return mx;
}