Fill dp [ i ] [ j ]
dp [ i ] [ j ] = dp [ i - 1 ] [ j ] ^ dp [ i ] [ j - 1 ] ^ dp [ i - 1 ] [ j - 1 ] ^ mat [ i ] [ j ] ; NEW_LINE med [ len ] = dp [ i ] [ j ] ; NEW_LINE len += 1 NEW_LINE med . sort ( ) ; NEW_LINE if ( len % 2 == 0 ) : NEW_LINE return ( med [ ( len // 2 ) ] + med [ ( len // 2 ) - 1 ] ) / 2.0 ; NEW_LINE return med [ len // 2 ] ; NEW_LINE