Submission #859575

#TimeUsernameProblemLanguageResultExecution timeMemory
859575kimCatfish Farm (IOI22_fish)C++17
0 / 100
160 ms10064 KiB
#include "fish.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long

ll dp1[305][305],dp2[305][305],dp0[305][305];
int n,m;
ll arr[305][305];

ll max_weights(int N,int M,vector<int> X,vector<int> Y,vector<int> W) {
    n=N;
    m=M;
    for(int i=0;i<M;++i){
        ++X[i],++Y[i];
    }
    for(int i=0;i<M;++i){
        arr[X[i]][Y[i]]=W[i];
    }

    for(int i=1;i<=n;++i){
        for(int j=1;j<=n;++j){
            dp0[i][j]=arr[i][j]+dp0[i][j-1];
        }
    }
    for(int i=1;i<=n;++i){
        for(int j=0;j<=n;++j){
            for(int k=0;k<=n;++k){
                if(k==j){
                    dp1[i][j]=max(dp1[i][j],dp1[i-1][k]);
                }
                else if(k<j){
                    dp1[i][j]=max(dp1[i][j],dp1[i-1][k]+dp0[i-1][j]-dp0[i-1][k]);
                }
                else{
                    dp1[i][j]=max(dp1[i][j],dp1[i-1][k]+dp0[i][k]-dp0[i][j]);
                }
            }
        }
    }
    ll ans=0;
    for(int j=0;j<=n;++j) ans=max(ans,dp1[n][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...