Submission #1212725

#TimeUsernameProblemLanguageResultExecution timeMemory
1212725vivkostovCatfish Farm (IOI22_fish)C++20
0 / 100
217 ms71312 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; struct cell { int a,b,c; }; long long int mat[3005][3005],col[3005][3005],n,m; long long int otg,dp[3005][3005]; cell a[300005]; void make_dp() { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { dp[i][j]=max(dp[i-1][j]+mat[i][j-1]+mat[i][j+1],dp[i][j-1]-col[i][j]+col[i][j+1]); if(j>=2)dp[i][j]=max(dp[i][j],dp[i][j-2]+col[i][j+1]); if(j>=3)dp[i][j]=max(dp[i][j],dp[i][j-3]+col[i][j-1]+col[i][j+1]); for(int z=j-4;z>=0;z--) { dp[i][j]=max(dp[i][j],dp[i][z]+col[i][j+1]+col[i][j-1]); } otg=max(otg,dp[i][j]); } } for(int i=n;i>=1;i--) { for(int j=1;j<=n;j++) { //cout<<dp[i][j]<<" "; } //cout<<endl; } } long long int max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) { n=N; m=M; for(int i=1;i<=m;i++) { a[i].a=Y[i-1]+1; a[i].b=X[i-1]+1; a[i].c=W[i-1]; mat[a[i].a][a[i].b]=a[i].c; } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { col[i][j]=col[i-1][j]+mat[i][j]; } } for(int i=n;i>=1;i--) { for(int j=1;j<=n;j++) { //cout<<col[i][j]<<" "; } //cout<<endl; } //cout<<endl; make_dp(); return otg; }
#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...