1 #include <. Бит / STDC ++ H> 2 #define что'при (я, а, б) для (INT I = (а); г <Ь; я ++) 3 #define _rep (я, а, б) (INT I = (а), я> Ь; я -) 4 #define INF 0x3f3f3f3f 5 #define MOD 1000000007 6 ЬурейеЕ долго долго LL; 7 с использованием пространства имен STD; 8 рядный LL чтения () 9 { 10 LL ANS = 0 Обратная ; 11 символ CH = GetChar (), последняя = ' ' ; 12 в то время как (! Isdigit (ч)) последняя = ч, ч =GetChar (); 13 в то время как (isdigit (ч)) ANS = (ANS << 1 ) + (ANS << 3 ) + ч - ' 0 ' , ч = GetChar (); 14 , если (последний == ' - ' ) ANS = - анс; 15 возвратных ансы; 16 } 17 встроенных пустот записи (LL х) 18 { 19 , если (х < 0 ) х = -x, putchar ( ' - ' ); 20 , если (х> = 10 ) записи (х / 10 ); 21 putchar (х% 10 + ' 0 ' ); 22 } 23 INT N, M; 24 INT дп [ 2003 ] [ 2003 ]; 25 INT до [ 2003 ] [ 2003 ]; 26 INT ЛЕФ [ 2003 ] [ 2003 ]; 27 ИНТ ри [ 2003 ] [ 2003 ]; 28 ИНТ а [ 2003 ] [ 2003 ]; 29 INT основных () 30 { 31 N = следующим образом (), М = следующим образом (); 32 что'при (я, 1 , N + 1 ) 33 что'при (к, 1 , М + 1 ) 34 а [I] [J] = следующим образом (); 35 36 что'при (к, 1 , М + 1 ) 37 { 38 до [ 1 ] [J] = 1 ; 39 что'при (я, 2 , N + 1 ) 40 , если (а [I] [J] ^ а [i - 1 ] [J]) 41 до [I] [J] = до [i - 1 ] [J] + 1 ; 42 еще 43 до [I] [J] = 1 ; 44 } 45 46 что'при (я, 1 , N + 1 ) 47 { 48 LEF [я] [ 1 ] = 1 ; 49 что'при (к, 2 , М + 1 ) 50 , если (а [I] [J] ^ а [I] [j - 1 ]) 51 LEF [I] [J] = LEF [I] [j - 1 ] + 1 ; 52 еще 53 LEF [I] [J] = 1 ; 54 } 55 56 что'при (я, 1 , N + 1 ) 57 { 58 п [I] [M] = 1 ; 59 _rep (J, M - 1 , 0 ) 60 , если (а [I] [J] ^ а [I] [J + 1 ]) 61 п [I] [J] = п [I] [J + 1 ] + 1 ; 62 еще 63 ри [I] [J] = 1 ; 64 } 65 66 INTrnt1 = 0 ; 67 что'при (я, 1 , N + 1 ) 68 что'при (к, 1 , М + 1 ) 69 { 70 дп [I] [J] = 1 ; 71 , если (я == 1 || J == 1 ) 72 дп [I] [J] = 1 ; 73 еще , если (! (А [I] [J] ^ а [i - 1 ] [j - 1 ])) 74 { 75 дп [I] [J] = мин (дп [i - 1 ] [j - 1] + 1 , мин (LEF [I] [J], до [I] [J])); 76 rnt1 = макс (rnt1, дп [I] [J]); 77 } 78 } 79 Е ( " % d \ п " , rnt1 * rnt1); 80 81 INT rnt2 = 0 ; 82 что'при (я, 1 , N + 1 ) 83 что'при (к, 1 , М + 1 ) 84 { 85 , если (я> 1 && а [I] [J] ^ а [i - 1 ] [J]) 86 { 87 LEF [I] [J] = мин (LEF [i - 1 ] [J], LEF [I] [J]); 88 ри [I] [J] = мин (г [i - 1 ] [J], п [I] [J]); 89 } 90 rnt2 = макс (rnt2, до [I] [J] * (г [я] [J] + LEF [I] [J] - 1 )); 91 } 92 Е ( " % d " , rnt2); 93 возврата 0 ; 94 }