Pagini recente » Cod sursa (job #1764057) | Cod sursa (job #1617883) | Cod sursa (job #1905664) | Cod sursa (job #2455175) | Cod sursa (job #1469966)
import java.io.*;
import java.io.PrintWriter;
import java.util.Scanner;
public class Main {
static int n;
static int m;
static int max = Integer.MIN_VALUE;
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(new FileInputStream("flip.in"));
PrintWriter out = new PrintWriter("flip.out");
n = in.nextInt();
m = in.nextInt();
int [][] data = new int[n][m];
for ( int i=0; i<n; i++ ){
for ( int j=0; j<m; j++ ){
data[i][j] = in.nextInt();
}
}
solve(0,data );
out.println( max );
out.close();;
}
public static void flipLinie( int linie, int [][] data ){
for ( int i=0; i<data[linie].length; i++ ){
data[linie][i] = -data[linie][i];
}
}
public static int bestSumColoana( int coloana, int [][] data ){
int positive=0;
int negative=0;
for ( int i=0; i<data.length; i++ ){
positive += data[i][coloana];
negative += -data[i][coloana];
}
return Math.max( positive, negative );
}
public static void solve( int linie ,int [][] data ){
if ( linie >= n ){
int currentBest = 0;
for ( int c=0; c<data[0].length; c++ ){
currentBest += bestSumColoana( c, data );
}
max = Math.max( max, currentBest );
} else {
solve( linie+1, data );
flipLinie(linie, data );
solve( linie+1, data );
}
}
}