Pagini recente » Cod sursa (job #830107) | Cod sursa (job #658378) | Cod sursa (job #427369) | Cod sursa (job #433415) | Cod sursa (job #2680770)
package memory.app;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Main {
private static class IntRef {
int i;
}
private static int computeMaxSum(int n, int m, int[][] a) {
int [] c = new int[m];
IntRef maxSum = new IntRef();
computeMaxSum(0, n, m, a, c, maxSum);
return maxSum.i;
}
private static void computeMaxSum(int k, int n, int m, int[][] a, int[] c, IntRef maxSum) {
if(k==m) {
int sumt = 0;
for(int i=0;i<n;i++) {
int sum = 0;
for(int j=0;j<m;j++) {
sum += c[j]*a[i][j];
}
if(sum < 0) {
sum = sum * -1;
}
sumt += sum;
}
if(maxSum.i < sumt) {
maxSum.i = sumt;
}
} else {
c[k] = 1;
computeMaxSum(k+1, n, m, a, c, maxSum);
c[k] = -1;
computeMaxSum(k+1, n, m, a, c, maxSum);
}
}
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(new FileInputStream("flip.in"));
PrintWriter out = new PrintWriter("flip.out");
int n = in.nextInt();
int m = in.nextInt();
int a[][] = new int[n][m];
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
a[i][j]=in.nextInt();
}
}
int maxSum = computeMaxSum(n, m, a);
out.printf("%d%n", maxSum);
in.close();
out.close();
}
}