CCF-小明种苹果【含C语言以及java语言】

小明种苹果( apple )

【题目描述】
小明在他的果园里种了一些苹果树。为了保证苹果的品质,在种植过程中要进行若干轮疏果操作,也就是提前从树上把不好的苹果去掉。第一轮疏果操作开始前,小明记录了每棵树上苹果的个数。每轮疏果操作时,小明都记录了从每棵树上去掉的苹果个
数。在最后一轮疏果操作结束后,请帮助小明统计相关的信息。
【输入格式】
从标准输入读入数据。
第 1 行包含两个正整数 N 和 M,分别表示苹果树的棵数和疏果操作的轮数。
第 1 + i 行(1 ≤ i ≤ N),每行包含 M + 1 个整数 a i0 ,a i1 ,...,a iM 。其中 a i0 为正整数,表示第一轮疏果操作开始前第 i 棵树上苹果的个数。a ij (1 ≤ j ≤ M)为零或负整数,表示第 j 轮疏果操作时从第 i 棵树上去掉的苹果个数。如果为零,表示没有去掉苹
果;如果为负,其绝对值为去掉的苹果个数。每行中相邻两个数之间用一个空格分隔。
【输出格式】
输出到标准输出。
输出只有一行,包含三个整数 T、k 和 P。其中,T 为最后一轮疏果操作后所有苹果树上剩下的苹果总数(假设苹果不会因为其
他原因减少);
• k 为疏果个数(也就是疏果操作去掉的苹果个数)最多的苹果树编号(如有并列,输出满足条件的最小编号);
• P 为该苹果树的疏果个数。
相邻两个数之间用一个空格分隔。输入数据保证是正确的,也就是说,每棵树在全部疏果操作结束后剩下的苹果个数是非负的。
【样例 1 输入】
3 3
73 -8 -6 -4
76 -5 -10 -8
80 -6 -15 0
【样例 1 输出】
167 2 23
【样例 1 解释】
第 1 棵苹果树的疏果个数为 8 + 6 + 4 = 18,第 2 棵为 5 + 10 + 8 = 23,第 3棵为 6 + 15 + 0 = 21,因此最后一轮疏果操作后全部苹果树上的苹果个数总和为(73 − 18) + (76 − 23) + (80 − 21) = 167,疏果个数最多的是第 2 棵数,其疏果个数为 23。
【样例 2 输入】
2 2
10 -3 -1
15 -4 0
【样例 2 输出】
17 1 4
【样例 2 解释】
两棵树的疏果个数均为 4,应该输出编号最小的第 1 棵树。
【子任务】
测试点 N M
1, 2 1 1
3, 4 10 10
5, 6 100 10
7, 8 10 100
9, 10 1000 1000
|a ij | ≤ 10 6 ,对所有 1 ≤ i ≤ N,0 ≤ j ≤ M

#include <stdio.h>
int main() {
    int N, M;
    int K = 0, temp = 0, sum = 0;
    scanf("%d", &N);
    scanf("%d", &M);
    for (int i = 1, x; i <= N; i++) {
        scanf("%d", &x);
        sum += x;
        int Temp = 0;
        for (int j = 1, a; j <= M; j++) {
            scanf("%d", &a);
            Temp += a;
        }
        Temp = -Temp;
        sum -= Temp;
        if (temp < Temp) {
            temp = Temp;
            K = i;
        }
    }
    printf("%d %d %d", sum, K, temp);
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int N, M;
        int K = 0;
        int temp = 0;
        int sum = 0;
        Scanner scanner = new Scanner(System.in);
        N = scanner.nextInt();
        M = scanner.nextInt();
        int arr1;
        for (int i = 0; i < N; i++) {
            arr1 = 0;
            sum = sum + scanner.nextInt();
            for (int j = 1; j < M + 1; j++) {
                arr1 = arr1 + scanner.nextInt();
            }
            sum = sum + arr1;
            if (temp > arr1) {
                temp = arr1;
                K = i;
            }
        }
        System.out.println(sum + " " + (K + 1) + " " + (-temp));
    }
}
//时间1.25s
//空间:156.8MB

小明种苹果续:https://blog.csdn.net/pointer_5/article/details/103556503

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值