CSP201909-2 小明种苹果续

试题编号:201909-2
试题名称:小明种苹果(续)
时间限制:1.0s
内存限制:512.0MB

 

 

方法1:

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int T=0,D=0,E=0;
        int N=in.nextInt();
        int [][]trees = new int[N][1000]; //记录从第二行开始的每行从第二个数开始的输入
        // int []book = new int[1000]; //记录每行第一个数即每个book[N]中前几个数是有效的
        int []drop = new int[N];    //记录某棵树是否掉落
        
        // for(int a : book)   a = -1000;
        for(int x : drop)   x = -1000;
        for(int i=0; i<N;i++){
            int tmp = in.nextInt();
            // book[i] = tmp;
            for(int j = 0;j<tmp;j++){
                trees[i][j] = in.nextInt();
            }
        }
        int sum=0; //最原始的苹果总数
        // for(int i = 0;i<trees.length;i++){
        //     sum+=trees[i][0];
        // }
        
        //计算最终剩下的苹果总数
        for(int i = 0;i<trees.length;i++){
            int temp = trees[i][0];
            for(int j = 1;j<trees[i].length;j++){
                if(trees[i][j]<0){
                    temp += trees[i][j];
                }else if(trees[i][j]>0){ //这里要具体判断是否有掉落 因为有可能出现检查了但没掉落的情况
                    if(temp != trees[i][j]){
                        temp = trees[i][j];
                        drop[i] = 1;
                    }
                }
            }
            sum+=temp;
        }
        
        //计算有几棵树发生过掉落
        int dropSum = 0;
        for(int i = 0;i<drop.length;i++){
            if(drop[i] == 1){
                dropSum++;
            }
        }
        
        int group = 0;
        //计算相邻连续三棵都发生掉落的组数
        for(int i = 0;i<drop.length;i++){
            int a = drop[i];
            int b = drop[(i+1)%(N)];
            int c = drop[(i+2)%(N)];
            if(a==1 && b ==1 && c==1)   group++;
        }
        System.out.println(sum + " " + dropSum + " " + group);
    }
}

     代码长度编程语言评测结果得分时间使用空间使用
     2.022KBJAVA正确100812ms163.8MB
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值