问题描述
解题思路
这道题被坑了n次…特别需要注意的一点是当一棵树出现连续掉苹果的情况时,D的值只增加一次。
代码
#include <iostream>
using namespace std;
long long a[1000][1000];
long long b[1000]={0};
int main()
{
long long n;
cin>>n;
long long i,j;
long long m[1000];
for(i=0;i<n;i++)
{
cin>>m[i];
for(j=0;j<m[i];j++)
{
cin>>a[i][j];
}
}
long long t=0,d=0,e=0;
long long sum;
for(i=0;i<n;i++)
{
sum=a[i][0];
for(j=1;j<m[i];j++)
{
if(a[i][j]>0)
{
if(sum>a[i][j])
{
b[i]=1;
}
sum=a[i][j];
}
else
{
sum=sum+a[i][j];
}
}
if(b[i]==1)
{
d++;
}
t=t+sum;
}
for(i=0;i<n;i++)
{
if(b[i%n]==1&&b[(i+1)%n]==1&&b[(i+2)%n]==1)
{
e++;
}
}
cout<<t<<" "<<d<<" "<<e;
return 0;
}