代码如下
#include <iostream>
using namespace std;
const int Max=1010;
bool drip[Max];
//输入
int N;
//输出
long long T;
int D,E;
int main()
{
scanf("%d",&N);
for(int i=0;i<N;i++){
int m,remain,oper;
scanf("%d %d",&m,&remain);
for(int j=0;j<m-1;j++){
scanf("%d",&oper);
if(oper<=0)
remain+=oper;
else{
if(oper<remain){ //发生掉落
drip[i]=true;
}
remain=oper;
}
}
if(drip[i])
D++;
T+=remain;
}
drip[N]=drip[0],drip[N+1]=drip[1];
for(int i=0;i<N;i++)
if(drip[i]&&drip[i+1]&&drip[i+2])
E++;
printf("%lld %d %d\n",T,D,E);
return 0;
}