【源码】蓝桥杯-小明送花 [复制链接]
【作者】Shawna 2019年12月9日 20:46:56
//机器人判分系统要求必须如下规则:
// 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。