제출 #1211134

#제출 시각아이디문제언어결과실행 시간메모리
1211134Muhammet메기 농장 (IOI22_fish)C++20
0 / 100
965 ms2162688 KiB
#include "bits/stdc++.h"
#include "fish.h"
// #include "grader.cpp"

using namespace std;

#define ll long long

ll max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w) {
    vector <vector <ll>> a(n+2, vector <ll> (n+2, 0)), dp(n+2, vector <ll> (n+2, 0));
    for(int i = 0; i < m; i++) {
        a[x[i] + 1][y[i] + 1] = w[i];
    }

    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= n; j++) {
            a[i][j] += (!j ? 0 : a[i][j-1]);
        }
    }

    vector <ll> b(n+1, 0);

    for(int i = 1; i <= n; i++) {
        for(int j = 0; j <= n; j++) {
            for(int j1 = 0; j1 <= j; j1++) {
                dp[i][j] = max(dp[i][j], a[i+1][j] + dp[i-1][j1] - a[i][j1] + a[i-1][j] - a[i-1][j1]);
            }
            for(int j1 = j; j1 < n; j1++) {
                dp[i][j] = max(dp[i][j], a[i+1][j] + dp[i-1][j1] - a[i][j]);
            }
            dp[i][j] = max(dp[i][j], a[i+1][j] + a[i-1][j] + (i > 2 ? b[i-3] : 0));
            b[i] = max(b[i], dp[i][j]);
        }
        b[i] = max(b[i], b[i-1]);
    }

    return b[n-1];
}
#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...