#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
struct cell
{
int a,b,c;
};
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],dp[i][j-1]-col[i][j]);
if(j>=2)dp[i][j]=max(dp[i][j],dp[i][j-2]);
if(j>=3)dp[i][j]=max(dp[i][j],dp[i][j-3]+mat[i][j-1]);
dp[i][j]+=mat[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];
}
}
make_dp();
return otg;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |