小明种苹果( 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
1666





