Submission #7948738


Source Code Expand

#include<bits/stdc++.h>
using namespace std;

#define REP(i,x,y) for(ll i=x; i<=y; i++)
#define BIT(t) (1ll << (t))
#define PER(i,y,x) for(ll i=y; i>=x; i--)
#define SIZE(v) ll(v.size())
#define vll vector<ll>
#define vvll vector<vector<ll>>
#define pll pair<ll,ll>
#define UNIQUE(v) v.erase( unique(v.begin(), v.end()), v.end() );
typedef long long ll;

ll f(ll h,ll w,vvll& grid){
    REP(i,1,h){
        REP(j,1,w){
            grid[i][j] += grid[i][j-1];
        }
    }
    REP(j,1,w){
        REP(i,1,h){
            grid[i][j] += grid[i-1][j];
        }
    } 
    vvll b(h+1, vll(h+1));
    vll c(h+1, -1e18), d(h+1, -1e18);
    REP(i,0,h){
        REP(j,i+1,h){
            vll u(w+1);
            vll v(w+1);
            REP(k,0,w){
                u[k] = grid[j][k] - grid[i][k];
            }
            v[0] = u[0];
            REP(k,1,w){
                v[k] = min(v[k-1], u[k]);
            }
            ll ans = -1e18;
            REP(k,1,w){
                ans = max(ans, u[k] - v[k-1]);
            }
            b[i][j] = ans;
        }
    }
    c[0] = -1e17; d[h] = -1e17;
    REP(i,1,h){
        REP(j,0,i-1){
            c[i] = max(c[i], b[j][i]);
        }
    }
    PER(i,h-1,0){
        PER(j,h,i+1){
            d[i] = max(d[i], b[i][j]);
        }
    }
    ll ans = -1e17;
    REP(i,1,h){
        REP(j,i,h){
            ans = max(ans, c[i] + d[j]);
            //cout << i << " " << j << " " << c[i] + d[j] << endl;
        }
    }
    return ans;
}

int main(){
    ll h,w;
    cin >> h >> w;
    vvll grid1(h+1, vll(w+1)), grid2(w+1, vll(h+1));
    REP(i,1,h){
        REP(j,1,w){
            cin >> grid1[i][j];
            grid2[j][i] = grid1[i][j];
        }
    }
    ll ans1 = f(h,w,grid1);
    ll ans2 = f(w,h,grid2);
    cout << max(ans1, ans2) << endl;
}

Submission Info

Submission Time
Task D - 庭園
User nejineji
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1876 Byte
Status AC
Exec Time 162 ms
Memory 2244 KB

Judge Result

Set Name Sample Subtask1 All
Score / Max Score 0 / 0 50 / 50 50 / 50
Status
AC × 4
AC × 15
AC × 34
Set Name Test Cases
Sample sample0.txt, sample1.txt, sample2.txt, sample3.txt
Subtask1 subtask0_0.txt, subtask0_1.txt, subtask0_10.txt, subtask0_11.txt, subtask0_12.txt, subtask0_13.txt, subtask0_14.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt
All sample0.txt, sample1.txt, sample2.txt, sample3.txt, subtask0_0.txt, subtask0_1.txt, subtask0_10.txt, subtask0_11.txt, subtask0_12.txt, subtask0_13.txt, subtask0_14.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt, subtask1_0.txt, subtask1_1.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_2.txt, subtask1_3.txt, subtask1_4.txt, subtask1_5.txt, subtask1_6.txt, subtask1_7.txt, subtask1_8.txt, subtask1_9.txt
Case Name Status Exec Time Memory
sample0.txt AC 1 ms 256 KB
sample1.txt AC 1 ms 256 KB
sample2.txt AC 1 ms 256 KB
sample3.txt AC 1 ms 256 KB
subtask0_0.txt AC 3 ms 256 KB
subtask0_1.txt AC 3 ms 256 KB
subtask0_10.txt AC 3 ms 256 KB
subtask0_11.txt AC 3 ms 256 KB
subtask0_12.txt AC 3 ms 256 KB
subtask0_13.txt AC 3 ms 256 KB
subtask0_14.txt AC 2 ms 256 KB
subtask0_2.txt AC 3 ms 256 KB
subtask0_3.txt AC 3 ms 256 KB
subtask0_4.txt AC 2 ms 256 KB
subtask0_5.txt AC 3 ms 256 KB
subtask0_6.txt AC 3 ms 256 KB
subtask0_7.txt AC 3 ms 256 KB
subtask0_8.txt AC 3 ms 256 KB
subtask0_9.txt AC 3 ms 256 KB
subtask1_0.txt AC 133 ms 1920 KB
subtask1_1.txt AC 151 ms 2164 KB
subtask1_10.txt AC 125 ms 1792 KB
subtask1_11.txt AC 162 ms 2244 KB
subtask1_12.txt AC 140 ms 2012 KB
subtask1_13.txt AC 160 ms 2204 KB
subtask1_14.txt AC 122 ms 1920 KB
subtask1_2.txt AC 162 ms 2204 KB
subtask1_3.txt AC 127 ms 1920 KB
subtask1_4.txt AC 128 ms 2012 KB
subtask1_5.txt AC 159 ms 2084 KB
subtask1_6.txt AC 148 ms 2084 KB
subtask1_7.txt AC 141 ms 1996 KB
subtask1_8.txt AC 160 ms 2184 KB
subtask1_9.txt AC 130 ms 2032 KB