题目
代码
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
const int N=n;
bool drp[N]={false};//第i棵苹果树是否有苹果掉落
int T=0;//剩余苹果数量
int D=0;//发生掉落苹果的苹果树的个数
int E=0;//相邻三棵树苹果掉落的情况的组数
for(int i=0;i<n;i++){//对第i棵苹果树
int mi;
cin>>mi;
int ti=0;//苹果剩余量
for(int j=0;j<mi;j++){
int temp;
int newti=ti;
cin>>temp;
if(temp>0){
newti=temp;
if(newti!=ti&&j!=0)drp[i]=true;
ti=newti;
}
else{
ti+=temp;//疏果,总数变化
}
}
T+=ti;
}
for(int i=0;i<n;i++){//计算D,E
if(drp[i])D++;
if(i==0){
if(drp[n-1]&&drp[0]&&drp[1])E++;
}
else if(i==n-1){
if(drp[n-2]&&drp[n-1]&&drp[0])E++;
}
else{
if(drp[i-1]&&drp[i]&&drp[i+1])E++;
}
}
cout<<T<<' '<<D<<' '<<E;
return 0;
}