Submission #713405

#TimeUsernameProblemLanguageResultExecution timeMemory
713405t6twotwo메기 농장 (IOI22_fish)C++17
0 / 100
1045 ms2097152 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; using ll = long long; ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) { vector w(N + 2, vector<ll>(N + 2)); for (int i = 0; i < M; i++) { w[X[i] + 1][Y[i] + 2] = W[i]; } for (int i = 1; i <= N; i++) { for (int j = 2; j <= N + 1; j++) { w[i][j] += w[i][j - 1]; } } vector dp1(N + 1, vector<ll>(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 + 2] - w[i - 1][k + 2]); } } } vector dp2(N + 1, vector<ll>(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 + 2] - w[i + 2][k + 2]); } } } ll 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...