#include <stdio.h>
#include <stdlib.h>
int main() {
int max = 0; // 最大边长数
int count = 0; // 能够分的巧克力份数
int N = 0, K = 0; // 巧克力块数、小朋友数
int i = 0, j = 0;
int flag = 0; // 标志位
// 读取巧克力块数 N 和小朋友数 K
scanf("%d %d", &N, &K);
// 定义数组存储巧克力的尺寸
int num[N][2];
// 读取每块巧克力的高度和宽度
for (i = 0; i < N; i++) {
scanf("%d %d", &num[i][0], &num[i][1]); // 获取巧克力边长
}
// 从大到小枚举可能的边长
for (i = 100000; i >= 1; i--) {
count = 0;
for (j = 0; j < N; j++) {
count += (num[j][0] / i) * (num[j][1] / i);
if (count >= K) {
max = i;
goto found;
}
}
}
found:
printf("%d", max);
return 0;
}
给小朋友分巧克力
最新推荐文章于 2025-04-10 18:42:09 发布