#include #include #include #define FOR(i,a,b) for ( int i = int(a); i <= int(b); ++i ) #define FORD(i,a,b) for ( int i = int(a); i >= int(b); --i ) #define REP(i,n) for ( int i = 0; i < int(n); ++i ) using namespace std; int row[102]; int col[102]; int M[102][102]; bool usedR[102], usedL[102]; int miniR[102], miniL[102]; int n, t; bool isCovered( int r2, int c2 ) { bool row = false, col = false; REP( r, n ) if ( r != r2 && M[r][c2] >= M[r2][c2] ) { row = true; break; } REP( c, n ) if ( c != c2 && M[r2][c] >= M[r2][c2] ) { col = true; break; } return row && col; } int main( ) { ios::sync_with_stdio( 0 ); cin >> t; while ( t-- ) { cin >> n; memset(usedR, 0, sizeof(usedR)); memset(usedL, 0, sizeof(usedL)); for ( int i = 0; i> row[i]; for ( int i = 0; i> col[i]; unsigned long long top = 0; for ( int i = 0; i maxi) { maxi = M[i][j]; x = i; y = j; } low += maxi; for ( int i = 0; i0); for ( int i = 0; i