제출 #724664

#제출 시각아이디문제언어결과실행 시간메모리
724664BT21tata메기 농장 (IOI22_fish)C++17
0 / 100
1076 ms121200 KiB
#include "fish.h" typedef long long ll; #include <bits/stdc++.h> using namespace std; ll dp[3005][3005][2], sum[3005][3005]; long long max_weights(int n, int m, vector<int> X, vector<int> Y, vector<int> W) { for(int i=0; i<m; i++) sum[X[i]][Y[i]]=W[i]; for(int i=0; i<n; i++) for(int j=1; j<n; j++) sum[i][j]+=sum[i][j-1]; for(int i=1; i<n; i++) { for(int j=0; j<n; j++) { for(int l=j; l<n; l++) { dp[i][j][0]=max(dp[i][j][0], max(dp[i-1][l][0], dp[i-1][l][1])+(sum[i][l]-sum[i][j-1])); if(i-2>=0) dp[i][j][1]=max(dp[i][j][1], max(dp[i-2][l][0], dp[i-2][l][1])+sum[i-1][l]); } for(int l=0; l<j; l++) { dp[i][j][1]=max(dp[i][j][1], dp[i-1][l][1]+(sum[i-1][j]-sum[i-1][l-1])); if(i-2>=0) dp[i][j][1]=max(dp[i][j][1], max(dp[i-2][l][0], dp[i-2][l][1])+sum[i-1][j]); } } } ll ans=0; for(int i=0; i<n; i++) ans=max({ans, dp[n-1][i][0], dp[n-1][i][1]}); return ans; } /* 5 4 0 2 5 1 1 2 4 4 1 3 3 3 */
#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...