Xiaoming kind of apples (continued)

Xiaoming kind of apples (continued)


from CCF-CSP 2019-09-2
Time limit:1s
Memory limit:512MB

Insert picture description here
Insert picture description here
Insert picture description here


ac code:
#include<iostream>
using namespace std;
int n;
bool drop[1005];        //记录每一棵树是否自然掉落过果子
int sum;                //后续记录
int main(){
    
    
    cin>>n;
    for(int i = 1;i <= n;++i) {
    
             //对n棵树进行操作
        int mi,remain,aij;              //如题中的mi,aij;remain表示每棵树剩余个数
        cin>>mi>>remain;
        for(int j = 2;j <= mi;++j){
    
    
            cin>>aij;
            if(aij > 0)                 //aij大于0那么是统计
                if(aij < remain)        //如果统计少于之前应剩余的,那么说明掉落了
                    remain = aij,drop[i] = true;
                else
                    continue;
            else                        //疏果
                remain += aij;
        }
        sum += remain;                  //sum累加每棵树剩余的果子数目
    }
    cout<<sum;
    sum = 0;
    for(int i = 1;i <= n;++i)
        if(drop[i])
            ++sum;                      //表示掉落过果子的树的数量
    cout<<" "<<sum<<" ";
    sum = 0;
    for(int i = 1,j = n - 2;i <= j;++i)
        if(drop[i] && drop[i + 1] && drop[i + 2])
            ++sum;                      //表示连续三颗树掉落果子的树的数量
    if(drop[n - 1] && drop[n] && drop[1])
        ++sum;
    if(drop[n] && drop[1] && drop[2])
        ++sum;
    cout<<sum;
    return 0;
}

Guess you like

Origin blog.csdn.net/qq_45985728/article/details/115179604