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 |
|
|
|
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 |