请大神看看为什么只有30分,样例都通过了
#include <iostream>
#include<stdio.h>
using namespace std;
typedef struct tree{
int start;//一开始有多少
int rest;//还剩多少
int drop;//是否有掉落
}Tree;
#define N 1000
main(){
int m,n,allDrop=0,E=0,all=0;//alldrop 掉落苹果的棵树,E 组数,all所有苹果剩余总数
cin>>n;
Tree tree[n];
for(int i =0,rec1;i<n;i++){
cin>>m;
cin>>rec1;
tree[i].start = rec1;
tree[i].rest = rec1;//初始剩余和一开始一样
for(int j =0,rec;j<m-1;j++){
cin>>rec;
if(rec<=0){
tree[i].rest+=rec;
}else{
if( tree[i].rest>rec){//如果上次剩余大于本次统计则有掉落
tree[i].drop = 1;//置drop为1 表明该苹果树发生掉落
tree[i].rest = rec;//更新当前苹果剩余总数
}
}
}
all+=tree[i].rest;
}
for(int i = 0;i<n;i++){
if(tree[i].drop ==1){
allDrop++;
if(tree[(i+1)%n].drop ==1&&tree[(i+2)%n].drop==1)E++;
}
}
cout<<all<<" "<<allDrop<<" "<<E;
}