模拟难度不大,主要是里面有很多坑,注意一棵树无论检测出d次掉果,这棵树是发生了掉果,而不是发生了d次掉果,以防重复统计
#include <iostream>
using namespace std;
const int N = 1010;
int n;
bool fall[N];
int main()
{
cin >> n;
int res = 0, D = 0, E = 0;
for (int i = 0; i < n; i ++ )
{
int m;
cin >> m;
int d = 0;
int sum = 0;
bool is_first = true; // 统计查数的次数
for (int j = 0; j < m; j ++ )
{
int x;
cin >> x;
if (x > 0 && is_first)
{
is_first = false, sum += x;
}
if (x > 0 && !is_first)
if (x != sum)
{
d = 1;
sum = x;
fall[i] = true;
}
if (x <= 0) sum += x;
}
res += sum;
D += d;
}
for (int i = 0; i < n; i ++ )
{
if (fall[i] && fall[(i + 1) % n] && fall[(i - 1 + n) % n]) E ++ ;
}
printf("%d %d %d\n", res, D, E);
return 0;
}