CSP201909-1 小明种苹果

试题编号:201909-1
试题名称:小明种苹果
时间限制:2.0s
内存限制:512.0MB

 

 

解法1:

import java.util.Scanner;
public class Main{
    public static void main (String[] args) {
        int n,m; //分别为果树棵树和疏果轮数
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        m = in.nextInt();
        int [][]book = new int[n][m+1];
        for(int i = 0;i < book.length;i++){
            for(int j = 0;j < book[i].length;j++)
                book[i][j] = in.nextInt();
        }
        int shuguo[] = new int[n];
        for(int k = 0; k < book.length; k++){
            int sum = 0;
            for(int l = 1;l < book[k].length; l++){
                sum += book[k][l];
            }
            shuguo[k] = sum;
        }
        int sub=0;
        for(int i =0;i<shuguo.length;i++){
            sub+=shuguo[i];
        }
        int maxIdx=0;
        int max = shuguo[0];
        for(int i=1 ; i<shuguo.length; i++){
            if(shuguo[i]<max){
                maxIdx = i;
                max = shuguo[i];
            }
        }
        maxIdx+=1;
        
        int origin=0;
        for(int i = 0;i < book.length;i++){
            origin+=book[i][0];
            
        }
        int last = origin + sub;
        //输出,T为最后一轮疏果后苹果树上剩下果子的总数;
        //      k为疏果个数最多的果树编号,其中若有相同者取编号最小的
        //      P为这棵树的疏果个数
        
        System.out.println(last + " " + maxIdx + " " + -max);
    }
}

解法2:


import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        int M = in.nextInt();
        
        int max = -1, T = 0, k = 0, P = 0;
        int[][] a = new int[1001][1001];
        for(int i = 0; i < N; i++){
            for(int j = 0; j < M+1; j++){
                a[i][j] = scanner.nextInt();
                
                T += a[i][j];
            }
        }
        
        
        for(int i = 0; i < N; i++){
            int sum = 0;
            for(int j = 1; j < M+1; j++){//从每一行的第二个开始加
                sum +=Math.abs(a[i][j]);
                if(sum > max){//如果一行的蔬果数大于最大数,把值赋给最大数
                    max = sum;
                    P = max;
                    k = i+1;//最大蔬果数的行数加一
                }
            }
        }
        
        System.out.println(T +" "+k+" "+P);
    }
}
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值