CCF201909-2 小明种苹果(续)

CCF201909-2 小明种苹果(续)_第1张图片
好久没做题了,这么简单的题也WA了好几次,最后还是看网上的题解才弄明白问题:注意要有连续苹果的情况,这个时候不能重复计算,而且只有苹果树个数大于2的时候才需要统计E

#include 
#include 
using namespace std;
int a[2000],flag[2000];
int main()
{
    int n,dropsum=0,leftsum=0;
    memset(flag,0,sizeof(flag));
    cin>>n;
    for(int i=1; i<=n; ++i)
    {
        int m,applesum;
        cin>>m;
        cin>>a[1];
        applesum=a[1];
        for(int j=2; j<=m; ++j)
        {
            cin>>a[j];
            if(a[j]<=0)
                applesum+=a[j];
            else
            {
                if(applesum!=a[j])
                {
                    if(flag[i]==0)
                        dropsum++;
                    flag[i]=1;
                    applesum=a[j];
                }
            }
        }
        leftsum+=applesum;
    }
    int e=0;
    if(n>=3)
    {
        for(int i=2; i<n; ++i)
            if(flag[i-1]+flag[i]+flag[i+1]==3)
                e++;
        if(flag[n]+flag[1]+flag[2]==3)
            e++;
        if(flag[n-1]+flag[n]+flag[1]==3)
            e++;
    }
    cout<<leftsum<<" "<<dropsum<<" "<<e;
    return 0;
}

你可能感兴趣的:(模拟)