Pagini recente » Istoria paginii runda/micutzii | Cod sursa (job #2477755) | Cod sursa (job #2928253) | Cod sursa (job #40469) | Cod sursa (job #1722197)
#include<fstream>
#include<iostream>
//#include<algorithm>
//using std::cout ;
std::ifstream fin ;
std::ofstream fout ;
int N , M ;
int F[ 17 ][ 17 ] ;
long int S_lin [ 17 ] ;
long int S_col [ 17 ] ;
long int S ;
long int S1 ;
int main()
{
fin.open("flip.in" , std::ios::in ) ;
fout.open("flip.out" , std::ios::out ) ;
fin >> N >> M ;
for ( int i = 0 ; i < N ; ++ i )
for ( int j = 0 ; j < M ; ++ j ){
fin >> F[ i ][ j ] ;
S_lin[ i ] += F [ i ] [ j ] ;
S_col[ j ] += F [ i ] [ j ] ;
}
//for ( int i = 0 ; i < N ; ++ i ) cout << S_lin[ i ] << ' ' ;
// cout << '\n' << '\n' ;
//for ( int i = 0 ; i < M ; ++ i ) cout << S_col[ i ] << ' ' ;
int k = 0 ;
for ( int i = 0 ; i < N ; ++ i )
if ( S_lin [ i ] <= S_lin[ k ] )
k = i ;
int l = 0 ;
for ( int i = 0 ; i < N ; ++ i )
if ( S_col [ i ] <= S_col[ l ] )
l = i ;
for ( int i = 0 ; i < N ; ++ i )
for ( int j = 0 ; j < M ; ++ j ){
if ( i == k )
S += (-1)* F[i][j] ;
else S += F[i][j] ;
}
for ( int i = 0 ; i < N ; ++ i )
for ( int j = 0 ; j < M ; ++ j ){
if ( j == l )
S1 += (-1)* F[i][j] ;
else S1 += F[i][j] ;
}
S1 = std::max(S1 ,S ) ;
S= 0 ;
for ( int i = 0 ; i < N ; ++ i )
for ( int j = 0 ; j < M ; ++ j ){
if ( j == l || k == i )
S += (-1)* F[i][j] ;
else S += F[i][j] ;
}
fout << std::max(S ,S1 ) << '\n' ;
fin.close() ;
fout.close() ;
return 0 ;
}