intermediate cells .
else if ( ( mat [ i , j ] == mat [ i - 1 , j ] ) && ( mat [ i , j ] == mat [ i , j - 1 ] ) && ( mat [ i , j ] == mat [ i - 1 , j - 1 ] ) ) { [ i , j ] = min ( dp [ i - 1 , j ] , dp [ i - 1 , j - 1 ] , dp [ i , j - 1 ] ) + 1 ; if ( max < dp [ i , j ] ) max = dp [ i , j ] ; } else [ i , j ] = 1 ; } } int [ ] freq0 = new int [ MAX ] ; int [ ] freq1 = new int [ MAX ] ;