C 语言程序设计实践 6.3 再烦我就打你哟!

在这个趣味算法问题中,小姑凉试图烧毁最多数量的BUF。通过分析N*M网格中1和0的分布,程序将帮助确定可以烧毁最多BUF的一行或一列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

★实验任务
小姑凉自从有了蓝爸以后就变得丧心病狂,带着她的小熊到处找人玩火,一旦人家惹得她不高兴她就放出小熊打人。于是大家决定一起反抗小姑凉的恶作剧。小姑凉被大家一起教育了很不开心,于是决定半夜偷去把大家田里种的 BUF 都偷走!(BUF 是用种的吗啊喂?!)可是她每次只能命令小熊烧死一行或一列的 BUF,她想烧死尽可能多的 BUF,你能帮她算么,从小就在玩火的小姑凉真的不会算丫~
★数据输入
输入第一行包括两个正整数 N,M(N,M<=10),表示一片 N*M 的 BUF 种植地。接下来 N 行,每行 M 个数,若数字为 1 表示 BUF 种植在这位置,0 则表示没有。小姑凉希望找出一行或列,她能烧死最多的 BUF。
★数据输出
输出仅一行,第一个数 0 或 1 表示行或列,第二个数表示第几行或第几列(编号从 1开始)。
输入示例
3 3
1 1 1
0 1 0
0 0 0
输出示例
0 1

#include <stdio.h>
int main() {
  int n, m, i, j, row = 0, column = 0, max0 = 0, max1 = 0, sum0[100] =
    { 0 }, sum1[100] = {
  0}, arr[100][100] = {
  0};
  scanf("%d %d", &n, &m);
  for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) {
      scanf("%d", &arr[i][j]);
    }
  }
  for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) {
      sum0[i] += arr[i][j];
    }
  }
  for (i = 0; i < m; i++) {
    for (j = 0; j < n; j++) {
      sum1[i] += arr[j][i];
    }
  }
  
  for (i = 0; i < n; i++) {
    if (sum0[i] > max0) {
      max0 = sum0[i];
      row = i + 1;
    }
  }
  for (i = 0; i < m; i++) {
    if (sum1[i] > max1) {
      max1 = sum1[i];
      column = i + 1;
    }
  }
  if (max0 >= max1)
    printf("0 %d\n", row);
  else
    printf("1 %d\n", column);

  return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值