c++美团2024届秋招笔试第一场编程真题
8.小美的蛋糕切割
小美有一个矩形的蛋糕,共分成了 n 行 m 列,共 n×m 个区域,每个区域是一个小正方形,已知蛋糕每个区域都有一个美味度。她想切一刀把蛋糕切成两部分,自己吃一部分,小团吃另一部分。
小美希望两个人吃的部分的美味度之和尽可能接近,请你输出∣s1−s2∣的最小值。(其中s1代表小美吃的美味度,s2代表小团吃的美味度)。
请务必保证,切下来的区域都是完整的,即不能把某个小正方形切成两个小区域。
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
输入描述:
第一行输出两个正整数 n 和 m ,代表蛋糕区域的行数和列数。
接下来的 n 行,每行输入 m 个正整数 a_{ij} ,用来表示每个区域的美味度。
1\leq n,m \leq 10^3
1\leq a_{ij} \leq 10^4
输出描述:
一个整数,代表 |s_1-s_2| 的最小值。
示例1
输入例子:
2 3
1 1 4
5 1 4
输出例子:
0
例子说明:
把蛋糕像这样切开:
1 1 | 4
5 1 | 4
左边蛋糕美味度之和是8
右边蛋糕美味度之和是8
所以答案是0。
#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
int m, n;
cin >> n >> m;
int dan[n][m];
long sum = 0, half = 0, half1 = 0, min = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> dan[i][j];
sum += dan[i][j];
}
}
int dao = m / 2;
for (int i = 0; i <