2019-9-2 小明种苹果 续 (100分)

踩坑指南:

1.注意小于3棵树的情况

2.不要联想

3.运用模拟的思想,通过此关

 

 

代码实现:

#define  _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int p[1003];
int tree[1003];
int solve[1003];
bool fall[1003];
int isfalls(int i, int n)
{
    for (int j = 0; j<3; j++)
    {
        if (fall[(i + j) % n] == false)return j;
    }
    return -1;
}
int main()
{
    int a;
    int n = 4, m;
    int sum = 0, falls = 0;
    scanf("%d", &n);

    for (int i = 0; i < n; i++)
    {
        scanf("%d", &m);
        scanf("%d", &a);
        solve[i]=a;
        fall[i]=false;
        for (int j = 0; j < m - 1; j++)
        {
            scanf("%d", &a);
            if (a <= 0)
            {
                solve[i] += a;
            }
            else if (solve[i] != a)//苹果掉落 
            {
                fall[i] = true;
                //falls++; 
                solve[i] = a;
            }
        }
        if(fall[i]== true)falls++;//错误原因:请不要再内层循环重复累加
        //printf("%d",solve[i]);
        sum += solve[i];
    }
    
    int zu = 0;
    if (n >= 3)
    {/*
        fall.push_back(true);
        fall.push_back(true);
        fall.push_back(false);
        fall.push_back(true);
        */
        zu = 0;

        for (int i = 0; i < n; i++)
        {
            m = isfalls(i, n);
            if (m == -1)
            {
                zu++;
            }
            else
            {
                i += m;
            }
        }
    }
    printf("%d %d %d\n", sum, falls, zu);
    return 0;
}
/*
4
4 74 -7 -12 -5
5 73 -8 -6 59 -4
5 76 -5 -10 60 -2
5 80 -6 -15 59 0
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值