Submission #1305877

#TimeUsernameProblemLanguageResultExecution timeMemory
1305877vtnooCatfish Farm (IOI22_fish)C++17
35 / 100
70 ms5144 KiB
#include <bits/stdc++.h> #define pb push_back #define fst first #define snd second #define fore(i,a,b) for(int i=a,pao=b;i<pao;++i) #define SZ(x) ((int)x.size()) #define ALL(x) x.begin(),x.end() #define mset(a,v) memset((a),(v),sizeof(a)) #define FIN ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) using namespace std; typedef long long ll; const int MAXN=305; const ll INF=1e18; ll pref[MAXN][MAXN],dp[MAXN][MAXN][2]; long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) { fore(i,0,M){ pref[X[i]+1][Y[i]+1]+=W[i]; } fore(i,0,N+1){ fore(j,1,N+1){ pref[i][j]+=pref[i][j-1]; } } fore(i,0,N+1)fore(j,0,N+1)fore(k,0,2)dp[i][j][k]=-INF; ll ans=0; dp[0][0][1]=0; fore(i,1,N+1){ fore(x,0,N+1){ fore(y,0,N+1){ if(y==0){ ll &dpv=dp[i][y][1]; dpv=max(dpv,dp[i-1][x][0]); dpv=max(dpv,dp[i-1][x][1]); ll &dpv2=dp[i][y][0]; dpv2=max(dpv2,dp[i-1][x][0]); dpv2=max(dpv2,dp[i-1][x][1]); } if(x<=y){ ll &dpv=dp[i][y][1]; dpv=max(dpv,dp[i-1][x][1]+(pref[i-1][y]-pref[i-1][x])); } if(x>=y){ ll &dpv=dp[i][y][0]; dpv=max(dpv,dp[i-1][x][0]+(pref[i][x]-pref[i][y])); dpv=max(dpv,dp[i-1][x][1]+(pref[i][x]-pref[i][y])); } ans=max(ans,dp[i][y][0]); ans=max(ans,dp[i][y][1]); } } } 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...