제출 #713406

#제출 시각아이디문제언어결과실행 시간메모리
713406t6twotwoCatfish Farm (IOI22_fish)C++17
0 / 100
1124 ms2097152 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; long long max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) { vector w(N + 2, vector<int64_t>(N + 1)); for (int i = 0; i < M; i++) { w[X[i] + 1][Y[i] + 1] = W[i]; } for (int i = 1; i <= N; i++) { for (int j = 1; j <= N; j++) { w[i][j] += w[i][j - 1]; } } vector dp1(N + 1, vector<int64_t>(N + 1)); for (int i = 1; i <= N; i++) { for (int j = 0; j <= N; j++) { for (int k = 0; k <= j; k++) { dp1[i][j] = max(dp1[i][j], dp1[i - 1][k] + w[i - 1][j] - w[i - 1][k]); } } } vector dp2(N + 1, vector<int64_t>(N + 1)); for (int i = N - 1; i >= 0; i--) { for (int j = 0; j <= N; j++) { for (int k = 0; k <= j; k++) { dp2[i][j] = max(dp2[i][j], dp2[i + 1][k] + w[i + 2][j] - w[i + 2][k]); } } } int64_t ans = 0; for (int i = 0; i < N; i++) { for (int j = 0; j <= N; j++) { ans = max(ans, dp1[i + 1][j] + dp2[i][j]); } } return ans; }
#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...