Submission #925245

#TimeUsernameProblemLanguageResultExecution timeMemory
925245IS_RushdiCatfish Farm (IOI22_fish)C++17
23 / 100
35 ms6492 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){ int mx = *max_element(y.begin(),y.end()); if(mx <= 8){ long long dp[n+1][mx+2][mx+2]{}; int sum[n+1][mx+2]{}; for(int i = 0; i < m; i++) x[i] += 1; for(int i = 0; i < m; i++) y[i] += 1; for(int i = 0; i < m; i++) sum[x[i]][y[i]] += w[i]; long long ans = 0; for(int i = 0; i < 1; i++){ for(int j = 0; j < mx+2; j++){ for(int k = 0; k < mx+2; k++){ dp[i][j][k] = -1e18; } } } dp[0][0][0] = 0; for(int i = 1; i <= n; i++){ for(int j = 0; j < mx+2; j++){ for(int k = 0; k < mx+2; k++){ for(int v = 0; v < mx+2; v++){ long long now = dp[i-1][k][j]; int cur = v; while(cur > max(j,k)) now += sum[i-1][cur--]; cur = k; while(cur > v) now += sum[i][cur--]; dp[i][v][k] = max(dp[i][v][k],now); ans = max(ans,now); } } } } return ans; } return -1ll; } // int main(){ // cout << max_weights(5, 4, {0, 1, 4, 3}, {2, 1, 4, 3}, {5, 2, 1, 3}) << '\n'; // }
#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...