#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double dd;
typedef pair<ll , ll> ii;
typedef tuple < ll, ll, ll > tp;
const ll INF = (ll)1e18;
#define mem(a , b) memset(a, b ,sizeof(a))
const ll N = 3005;
ll dp[2][2][2][N], pref[2][2][2][N], suf[2][2][2][N];
ll a[N][N]; ll n;
long long max_weights(int _n, int m, std::vector<int> X, std::vector<int> Y,
std::vector<int> W) {
n = _n;
mem(a, 0); mem(dp, 0); mem(pref, 0);
for(ll i = 0; i < m; i++){
a[X[i]][Y[i]] = W[i];
}
for(ll i = 0; i < n; i++){
for(ll j = 1; j <= n; j++){
a[i][j] += a[i][j - 1];
}
}
ll row = 0;
mem(dp[row], 0);
mem(pref, 0);
mem(suf, 0);
ll ans = 0;
for(ll i = 0; i < n; i++){
row ^= 1;
// 0 -> i-1 > i, i > i+1
// 1 -> i-1 < i, i < i+1
// 0 -> sz[i-1] < sz[i], sz[i] < sz[i+1]
// 1 -> sz[i-1] > sz[i], sz[i] > sz[i+1]
for(ll j = 0; j < n; j++){
for(ll c = 0; c < 2; c++)
dp[row][c][0][j] = dp[row][c][1][j] = -INF;
}
for(ll l = 0; l < 2; l++){
for(ll d1 = 0; d1 < 2; d1++){
for(ll r = 0; r < 2; r++){
for(ll d2 = 0; d2 < 2; d2++){
if(!l && r) continue;
for(ll j = 0; j < n; j++){
ll V = 0;
if(l == 0 && d1){
V = suf[1-row][l][d1][j] - a[i][j];
}else if(l == 0){
V = pref[1-row][l][d1][j];
}
if(l == 1 && !d1){
V = pref[1-row][l][d1][j] + (i > 0 ? a[i - 1][j] : 0);
}else if(l == 1){
V = suf[1-row][l][d1][j];
}
if(r == 0 && d2){
V += a[i + 1][j];
}
if(r == 1 && !d2){
V -= a[i][j];
}
dp[row][r][d2][j] = max(dp[row][r][d2][j], V);
ans = max(ans, V);
}
}
}
}
}
// cout << i << ' ' << ans << '\n';
for(ll c = 0; c < 2; c++){
for(ll d = 0; d < 2; d++){
for(ll j = n - 1; j >= 0; j--){
suf[row][c][d][j] = max(suf[row][c][d][j + 1], dp[row][c][d][j]);
}
for(ll j = 0; j < n; j++){
pref[row][c][d][j] = max(dp[row][c][d][j], (j > 0 ? pref[row][c][d][j - 1]: -INF));
}
}
}
}
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
718 ms |
148748 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
26 ms |
71424 KB |
1st lines differ - on the 1st token, expected: '2', found: '1' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
837 ms |
144816 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
30 ms |
71500 KB |
1st lines differ - on the 1st token, expected: '3', found: '2' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
30 ms |
71500 KB |
1st lines differ - on the 1st token, expected: '3', found: '2' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
30 ms |
71500 KB |
1st lines differ - on the 1st token, expected: '3', found: '2' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
837 ms |
144816 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
718 ms |
148748 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |