Submission #776893

#TimeUsernameProblemLanguageResultExecution timeMemory
776893alexander707070Catfish Farm (IOI22_fish)C++17
52 / 100
722 ms224892 KiB
#include<bits/stdc++.h> #define MAXN 3007 using namespace std; int n,m,maxx; long long pref[MAXN][MAXN],dp[MAXN][MAXN][2]; bool li[MAXN][MAXN][2]; long long prefmax[MAXN],prefmax2[MAXN]; long long suffmax[MAXN],suffmax2[MAXN]; long long 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++){ pref[X[i]+1][Y[i]+1]+=W[i]; } for(int i=1;i<=n;i++){ for(int f=1;f<=n;f++){ pref[i][f]=pref[i][f]+pref[i][f-1]; } } for(int pos=1;pos<=n;pos++){ for(int last=0;last<=n;last++){ prefmax[last]=dp[pos-1][last][1]-pref[pos][last]; if(last>0)prefmax[last]=max(prefmax[last],prefmax[last-1]); prefmax2[last]=dp[pos-1][last][0]; if(last>0)prefmax2[last]=max(prefmax2[last],prefmax2[last-1]); } for(int last=n;last>=0;last--){ suffmax[last]=dp[pos-1][last][0]+pref[pos+1][last]; suffmax[last]=max(suffmax[last],suffmax[last+1]); suffmax2[last]=dp[pos-1][last][0]; suffmax2[last]=max(suffmax2[last],suffmax2[last+1]); } for(int last=0;last<=n;last++){ for(int flag=0;flag<2;flag++){ dp[pos][last][flag]=max(dp[pos][last][flag],prefmax[last]+pref[pos][last]); dp[pos][last][flag]=max(dp[pos][last][flag],prefmax2[last]); if(flag==0)dp[pos][last][flag]=max(dp[pos][last][flag],suffmax[last+1]-pref[pos+1][last]); dp[pos][last][flag]=max(dp[pos][last][flag],prefmax2[last+1]); } } } return dp[n][0][0]; } /* 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...