代码实现
#include<iostream>
using namespace std;
int n;
int a[1001][1001]; // 输入
int sum[1001]; //记录每棵树最后的果实
int flag[1001]; // 记录每棵树是否有果实掉落
int t,d,e; // 果实总数;掉落果实的树棵数;连续三棵的情况数
int main()
{
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i][0];
for(int j=1;j<=a[i][0];j++){
cin>>a[i][j];
if(j==1){
sum[i] = a[i][j];
}
else if(j!=1 && a[i][j]>0){ // 正数
// 总数不同
if(a[i][j]!=sum[i])
flag[i]=1; // 果实掉落
sum[i] = a[i][j]; // 更新果实总数
}
else{
sum[i] += a[i][j]; // 疏落果树
}
}
}
// 查看每一棵树的情况
for(int i=0;i<n;i++){
t += sum[i];
if(flag[i]) d++;
if(flag[i]==1 && flag[(i+1)%n]==1 && flag[(i+2)%n]==1)
e++;
}
cout<<t<<" "<<d<<" "<<e;
return 0;
}