Submission #641828

#TimeUsernameProblemLanguageResultExecution timeMemory
641828VanillaCatfish Farm (IOI22_fish)C++17
0 / 100
196 ms12492 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; typedef long long int64; const int maxn = 302; int64 dp [maxn][maxn][2]; int64 p [maxn][maxn]; int lim = 8; int64 max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w) { lim = min(lim, n); for (int i = 0; i < m; i++) { p[++x[i]][++y[i]] = w[i]; } for (int i = 1; i <= n; i++){ for (int j = 1; j <= n; j++){ p[i][j]+=p[i][j-1]; } } for (int i = 0; i <= n; i++){ dp[1][i][0] = dp[1][i][1] = p[2][i]; } for (int i = 2; i <= n; i++){ for (int j = 0; j <= n; j++){ for (int k = 0; k <= n; k++){ if (j >= k) { dp[i][j][1] = max(dp[i][j][1], dp[i-1][k][1] - p[i][k] + p[i+1][j] + (p[i-1][j] - p[i-1][k])); } if (j <= k) { dp[i][j][0] = max(dp[i][j][0], max(dp[i-1][k][0], dp[i-1][k][1]) - p[i][j] + p[i+1][j]); } } } } int64 rs = 0; for (int i = 0; i <= n; i++){ rs = max({rs, dp[n][i][0], dp[n][i][1]}); } return rs; }
#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...