origin array is compressed 2 times to 1-dimension
/* UVas */
/*****************************************************************************/
int t, a, b, c;
long long d3[21][21][21];
long long d2[21][21];
long long d1[21];
int main(void) {
cin>>t;
while (t--) {
cin>>a>>b>>c;
for (int i=0; i<a; i++)
for (int j=0; j<b; j++)
for (int k=0; k<c; k++) cin>>d3[i][j][k];
long long r=INT_MIN;
for (int i=0; i<a; i++) { // first compression
memset(d2, 0, sizeof(d2));
for (int ii=i; ii<a; ii++) {
for (int j=0; j<b; j++)
for (int k=0; k<c; k++) d2[j][k]+=d3[ii][j][k];
for (int i=0; i<b; i++) { // second compression
memset(d1, 0, sizeof(d1));
for (int j=i; j<b; j++) {
for (int k=0; k<c; k++) d1[k]+=d2[j][k];
long long n=d1[0];
r=max(r, n);
for (int k=1; k<c; k++) {
n=max(n, 0LL);
n+=d1[k];
r=max(r, n);
}
}
}
}
}
cout<<r<<endl;
if (t) cout<<endl;
}
}
/*****************************************************************************/
No comments :
Post a Comment