Submission #1026827
Source Code Expand
using System;
using System.Text;
using System.Collections.Generic;
class Solve{
public Solve(){}
StringBuilder sb;
public static int Main(){
new Solve().Run();
return 0;
}
void Run(){
sb = new StringBuilder();
Calc();
Console.Write(sb.ToString());
}
void Calc(){
string[] str = Console.ReadLine().Split(' ');
int H = int.Parse(str[0]);
int W = int.Parse(str[1]);
long[,] D1 = new long[H,W];
long[,] D2 = new long[W,H];
for(int i=0;i<H;i++){
str = Console.ReadLine().Split(' ');
for(int j=0;j<W;j++){
D1[i,j] = long.Parse(str[j]);
D2[j,i] = long.Parse(str[j]);
}
}
sb.Append(Math.Max(Calc(D1,H,W),Calc(D2,W,H))+"\n");
}
long Calc(long[,] m,int H,int W){
long[,] sums = new long[H,W];
for(int i=0;i<H;i++){
sums[i,0] = m[i,0];
for(int j=1;j<W;j++){
sums[i,j] = sums[i,j-1] + m[i,j];
}
}
long[] m1 = new long[H];
for(int i=0;i<H;i++){
m1[i] = -9000000000000;
}
for(int l=0;l<W;l++){
for(int r=l;r<W;r++){
long c1 = Math.Max(0,sums[0,r]-(l == 0 ? 0 : sums[0,l-1]));
long c2 = Math.Max(0,sums[0,r]-(l == 0 ? 0 : sums[0,l-1]));
long c3 = sums[0,r]-(l == 0 ? 0 : sums[0,l-1]);
m1[0] = Math.Max(m1[0],c3);
for(int i=1;i<H;i++){
c2 = Math.Max(sums[i,r]-(l == 0 ? 0 : sums[i,l-1]),c2 + sums[i,r]-(l == 0 ? 0 : sums[i,l-1]));
c1 = Math.Max(c1,c2);
c3 = Math.Max(c3,sums[i,r]-(l == 0 ? 0 : sums[i,l-1]));
if(c3 >= 0){
m1[i] = Math.Max(c1,m1[i]);
}
else{
m1[i] = Math.Max(c3,m1[i]);
}
}
}
}
long[] m2 = new long[H];
for(int i=0;i<H;i++){
m2[i] = -9000000000000;
}
for(int l=0;l<W;l++){
for(int r=l;r<W;r++){
long c1 = Math.Max(0,sums[H-1,r]-(l == 0 ? 0 : sums[H-1,l-1]));
long c2 = Math.Max(0,sums[H-1,r]-(l == 0 ? 0 : sums[H-1,l-1]));
long c3 = sums[H-1,r]-(l == 0 ? 0 : sums[H-1,l-1]);
m2[H-1] = Math.Max(m2[H-1],c3);
for(int i=H-2;i>=0;i--){
c2 = Math.Max(sums[i,r]-(l == 0 ? 0 : sums[i,l-1]),c2 + sums[i,r]-(l == 0 ? 0 : sums[i,l-1]));
c1 = Math.Max(c1,c2);
c3 = Math.Max(c3,sums[i,r]-(l == 0 ? 0 : sums[i,l-1]));
if(c3 >= 0){
m2[i] = Math.Max(c1,m2[i]);
}
else{
m2[i] = Math.Max(c3,m2[i]);
}
}
}
}
long max = -9000000000000;
for(int i=0;i<H-1;i++){
max = Math.Max((m1[i]+m2[i+1]),max);
}
return max;
}
}
Submission Info
Submission Time |
|
Task |
D - 庭園 |
User |
leign |
Language |
C# (Mono 3.2.1.0) |
Score |
100 |
Code Size |
3237 Byte |
Status |
AC |
Exec Time |
1104 ms |
Memory |
15440 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 |
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 |
98 ms |
8720 KB |
sample1.txt |
AC |
96 ms |
8792 KB |
sample2.txt |
AC |
98 ms |
8716 KB |
sample3.txt |
AC |
96 ms |
8716 KB |
subtask0_0.txt |
AC |
106 ms |
8972 KB |
subtask0_1.txt |
AC |
107 ms |
8960 KB |
subtask0_10.txt |
AC |
106 ms |
8952 KB |
subtask0_11.txt |
AC |
102 ms |
8988 KB |
subtask0_12.txt |
AC |
106 ms |
9088 KB |
subtask0_13.txt |
AC |
104 ms |
8864 KB |
subtask0_14.txt |
AC |
104 ms |
8904 KB |
subtask0_2.txt |
AC |
103 ms |
8972 KB |
subtask0_3.txt |
AC |
103 ms |
8852 KB |
subtask0_4.txt |
AC |
102 ms |
8840 KB |
subtask0_5.txt |
AC |
104 ms |
9068 KB |
subtask0_6.txt |
AC |
105 ms |
9016 KB |
subtask0_7.txt |
AC |
105 ms |
9068 KB |
subtask0_8.txt |
AC |
103 ms |
8900 KB |
subtask0_9.txt |
AC |
104 ms |
8852 KB |
subtask1_0.txt |
AC |
863 ms |
14888 KB |
subtask1_1.txt |
AC |
988 ms |
15232 KB |
subtask1_10.txt |
AC |
811 ms |
14932 KB |
subtask1_11.txt |
AC |
1063 ms |
15300 KB |
subtask1_12.txt |
AC |
917 ms |
15044 KB |
subtask1_13.txt |
AC |
1104 ms |
15420 KB |
subtask1_14.txt |
AC |
890 ms |
14924 KB |
subtask1_2.txt |
AC |
1053 ms |
15200 KB |
subtask1_3.txt |
AC |
868 ms |
15096 KB |
subtask1_4.txt |
AC |
935 ms |
14944 KB |
subtask1_5.txt |
AC |
1068 ms |
15284 KB |
subtask1_6.txt |
AC |
966 ms |
15188 KB |
subtask1_7.txt |
AC |
923 ms |
15168 KB |
subtask1_8.txt |
AC |
1103 ms |
15440 KB |
subtask1_9.txt |
AC |
936 ms |
15060 KB |