//机器人判分系统要求必须如下规则: // 1: 不能有package关键字 // 2: 必须类名必须是Main import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { int x = 0, y = 0; Scanner scanner = new Scanner(System.in); x = scanner.nextInt(); y = scanner.nextInt(); // System.out.println(x); // System.out.println(y); ArrayList<ArrayList<Integer>> _i = new ArrayList<ArrayList<Integer>>(); for (int a = 1; a <= x; a++) { Scanner s = new Scanner(System.in); ArrayList<Integer> arr = new ArrayList<Integer>(); for (int b = 1; b <= y; b++) { arr.add(s.nextInt()); } _i.add(arr); } System.out.println(_i); ArrayList<Integer> temp = new ArrayList<Integer>(); for (int c = 0; c < _i.get(0).size(); c++) { int q = 0; for (int z = 0; z < _i.size(); z++) { q += _i.get(z).get(c); } temp.add(q); } int temp2 = -1; for (int k = 0; k <= temp.size(); k++) { int n = 0; int m = 0; for (int v = 0; v < temp.size(); v++) { if (v <= k) { n += temp.get(v); } else { m += temp.get(v); } } if (temp2 == -1) { if (m <= n) { temp2 = n - m; } else { temp2 = m - n; } } else { if (m <= n) { if (temp2 > n - m) { temp2 = n - m; } } else { if (temp2 > m - n) { temp2 = m - n; } } } } System.out.println(temp2); } }
问题描述
小明开了一家花店,这天,有个客户定了非常多的花,按客户的需要,这些花要排成 n 行 m 列。
小明要将这些花运送到客户那,然而由于花太多,需要分两辆车才能装下。
小明怕自己弄错花的顺序,因此在分车的时候,他准备将前面一些列(注意不是行)的花放在第一辆车上,将其实的花放在第二辆车上。
已知每盆花的重量,要使第一辆车和第二辆车尽可能总重量一致,请帮助小明分装这些花,请告诉小明两辆车的重量最小差多少。
输入格式
输入的第一行包含两个整数 n, m,分别表示行数和列数。
接下来 n 行,每行 m 个正整数,分别表示每盆花的重量。
输出格式
输出一个整数,表示总重量最接近时两车的重量之差(的绝对值)。
样例输入
3 4
1 2 3 9
5 6 7 8
2 3 4 9
样例输出
7
样例说明
将前 3 列放一辆车,后 1 列放一辆车,第一辆比第二辆重 7 。
评测用例规模与约定
对于 30% 的评测用例,2 <= n, m <= 20。
对于 70% 的评测用例,2 <= n, m <= 100。
对于所有评测用例,2 <= n, m <= 1000,每盆花的重量不超过 1000。