ccf认证考试中的《小明种苹果》,不知道代码哪里出问题了,测试的数都对但是上传就20分

#include
#include
using namespace std;

int arr[1001][1001];

int main(){

//n为一共的苹果树,m为对第n棵数进行记录的数据 
int n,m;
//t为剩下的苹果总数,d为掉落的苹果树的数目,
//e为连续三棵树掉落苹果的情况 
int t=0,d=0,e=0;

cin>>n;

for(int i=0;i<n;i++){
    cin>>m;
    for(int j=0;j<m;j++){
        cin>>arr[i][j];
    }
}
//统计总数
int sum[n];
memset(sum,0,sizeof(sum)); 
for(int i=0;i<n;i++){
    sum[i]=arr[i][0];
    for(int j=1;j<m;j++){
        
        if(arr[i][j]<=0){
            sum[i]+=arr[i][j];
        }
        else if(arr[i][j]>0){
            sum[i]=arr[i][j];
        }
    }
}

for(int i=0;i<n;i++){
    t+=sum[i];
}



//掉落苹果的苹果树
int k[n];
memset(k,0,sizeof(k));
for(int i=0;i<n;i++){
        
    for(int j=1;j<m;j++){
        if(arr[i][j]<=0){
            arr[i][0]+=arr[i][j];    
        }
        if(arr[i][j]>0){
            if(arr[i][j]!=arr[i][0]){
                k[i]++;
            }
        }
    }
} 

for(int i=0;i<n;i++){
    d+=k[i];
}

//连续三棵树发生掉落情况
/*
if(n>3){
    for(int i=0;i<n;i++){
        
    
        if(i==n-1){
            if(k[n-2]+k[n-1]+k[0]==3){
                e++;
            }
        }
        else if(i<=n-2 && i>=1){
             if(k[i-1]+k[i]+k[i+1]==3){
                e++;
            } 
        }
        else if(i==0){
            if(k[n-1]+k[0]+k[1]==3){
                e++;
            }
        }
    }
}
else if(n==3){
    e++;
} 

*/

if(n>=3){
    for(int i=0;i<n;i++){
        if(k[(i-1+n)%n] && k[i] && k[(i+1)%n]){
            e++;
        }
    }
}

cout<<t<<" "<<d<<" "<<e<<endl;

}
/*
6
4 10 -3 6 0
4 10 -1 5 0
4 10 -6 3 0
4 10 -1 3 0
4 10 -6 2 -1
4 10 -2 4 0

4
4 10 -1 6 0
4 10 -3 5 0
4 10 -2 7 -1
4 10 -5 1 0
*/