给出的两个实例得出的结果都正确,检查了很久也没有发现哪里错了,希望哪位大佬发现了错误帮忙指正!
源代码:
#include<iostream>
using namespace std;
int main(){
int m;
int T=0,D=0,E=0;
int x;
int N;
cin>>N;
int i,j;
int point[100]={0};
for(i=0;i<N;i++){
int temp;
cin>>m; //数量
cin>>temp; //第一个
for(j=1;j<m;j++){
cin>>x;
if(x<=0){
temp+=x;
}
else{
if(temp!=x){
temp=x;
D++;
point[i]=1;
}
}
}
T+=temp;
}
for(i=1;i<N-1;i++){
if((point[i]==1)&&(point[i-1]==1)&&(point[i+1]==1))
E++;
}
if((point[0]==1)&&point[1]==1&&point[N-1]==1)//第一棵树是连续中间的那棵
E++;
if((point[N-1]==1)&&point[0]==1&&point[N-2]==1)//最后一颗树是连续中间的那棵
E++;
cout<<T<<" "<<D<<" "<<E;
}
/*
4
4 74 -7 -12 -5
5 73 -8 -6 59 -4
5 76 -5 -10 60 -2
5 80 -6 -15 59 0
*/
/*
5
4 10 0 9 0
4 10 -2 7 0
2 10 0
4 10 -3 5 0
4 10 -1 8 0
*/