This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
//#include "insects.h"
#define f first
#define s second
#define ll long long
#define pb push_back
#define pii pair<int,int>
#define pll pair<ll,ll>
//#define sz(x) (ll)x.size()
#define all(x) x.begin(),x.end()
using namespace std;
ll dpl[3001][3001]{0};
ll dpr[3001][3001]{0};
ll mp[3001][3001]{0};
ll max_weights(int N, int M,vector<int> X,vector<int> Y,vector<int> W) {
for(int i=0;i<M;i++){
mp[Y[i]+1][X[i]+1]+=W[i];
}ll ans=0;
for(int i=1;i<=N;i++)for(int j=1;j<=N;j++)mp[i][j]+=mp[i-1][j];
for(int i=1;i<=N;i++){
for(int j=0;j<=N;j++){
dpl[j][i]=0;
for(int k=0;k<=N;k++){
dpl[j][i] = max(dpl[k][i-1]+max(mp[j][i-1]-mp[k][i-1],1ll*0),dpl[j][i]);
}
}
}
for(int i=N;i>=1;i--){
for(int j=0;j<=N;j++){
dpr[j][i]=0;
for(int k=0;k<=N;k++){
dpr[j][i] = max(dpr[k][i+1]+max(mp[j][i+1]-mp[k][i+1],1ll*0),dpr[j][i]);
}
}
}
for(int i=1;i<=N;i++){
for(int j=0;j<=N;j++){
ans=max(ans,dpl[j][i]+dpr[j][i]);
}
}
return ans;
}
# | 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... |