#include <bits/stdc++.h>
using namespace std;
#define ll long long
int const N=305;
ll dp[N][N];
ll sm[N][N];
long long max_weights(int n, int m, vector<int> X, vector<int> Y,
vector<int> W)
{
for(int i=0;i<m;i++)
sm[X[i]+1][Y[i]+1]+=W[i];
for (int i = 1; i <=n; ++i)
for(int j=1;j<=n;++j)
sm[i][j]+=sm[i][j-1];
for(int i=2;i<=n;i++)
for(int k=0;k<=n;k++){
for(int p=k+1;p<=n;p++)
dp[i][k]=max(dp[i][k],dp[i-1][p]+sm[i][p]-sm[i][k]);
for(int p=0;p<=k;p++)
dp[i][k]=max(dp[i][k],dp[i-1][p]);
if(i==2)
dp[i][k]=max(dp[i][k],sm[i-1][k]);
if(i>2){
for(int p=0;p<=n;p++)
dp[i][k]=max(dp[i][k],dp[i-2][p]+sm[i-1][max(p,k)]);
}
// cout<<dp[i][k]<<' ';
// if(k==n)
// cout<<endl;
}
ll ans=0;
for(int i=0;i<=n;i++)
ans=max(ans,dp[n][i]);
return ans;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
31 ms |
7256 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
1st lines differ - on the 1st token, expected: '2', found: '1' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
17 ms |
3420 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
348 KB |
1st lines differ - on the 1st token, expected: '3', found: '2' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
348 KB |
1st lines differ - on the 1st token, expected: '3', found: '2' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
348 KB |
1st lines differ - on the 1st token, expected: '3', found: '2' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
17 ms |
3420 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
31 ms |
7256 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |