プレフィックスと水問題、について話すことは何も、水平方向と垂直方向の座標を加えたものに注意を払います。
この問題空間に加えて、少しきついです。
コードは次のように実装されています。
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 #define(私は++; iが=(B)<I =(A)がINTレジスタ)のための担当者(B I)のconst int型 MAXN = 5E3 + 5 。INTのN、M、N、R。 INT [MAXN] [MAXN]。INT MAX(int型、int型 B){ 戻り > bは?A:B;} intです読み出す(){ int型のx = 0、フラグ= 0 。 CHAR CH = ' ' ; しばらく!(CH = ' - ' &&(CH < ' 0 ' || CH> ' 9 '))CH = GETCHAR()。 もし(CH == ' - ' ){ フラグ = 1 。 CH = GETCHAR()。 } 一方、(CH> = ' 0 ' && CH <= ' 9 ' ){ X =(X << 1)+(X << 3)+(CH ^ ' 0 ' )。 CH = GETCHAR()。 } リターンフラグ?- X:X; } ボイド書き込み(INT X){ 場合(X < 0 ){ のputchar(' - ' )。 X = - X。 } 場合(X> 9)書き込み(X / 10 )。 putchar(Xの%10 + ' 0 ' )。 } INT (){メイン N =(読み取り)、R = 読み取り()。 N = R、M = R。 担当者(I、1 、N){ int型X、Y、W。 X =)、Yが読み出さ=()(読み取り、= W )(読み取ります。 X + = 1、Y + = 1 ; [X] [Y]は = Wは、 N = MAX(N、X)。 M = MAX(M、Y)。 } 担当者(I、1 、n)の 担当者(J、1 、m)の [I] [J] + = [I - 1 ] [J] + [I]、[J - 1 ] - [I - 1 ] [J - 1 ]。 int型 ANS = 0 ; 担当者(I、R、N) のrep(J、R、M) ANS = MAX(ANS、[I] [J] - [I - R] [J] - [I]、[J - R] + [I - R] [J - R])。 (ANS)を書きます。 リターン 0 ; }