好久没做题了,这么简单的题也WA了好几次,最后还是看网上的题解才弄明白问题:注意要有连续苹果的情况,这个时候不能重复计算,而且只有苹果树个数大于2的时候才需要统计E
#include <iostream>
#include <cstring>
using namespace std;
int a[2000],flag[2000];
int main()
{
int n,dropsum=0,leftsum=0;
memset(flag,0,sizeof(flag));
cin>>n;
for(int i=1; i<=n; ++i)
{
int m,applesum;
cin>>m;
cin>>a[1];
applesum=a[1];
for(int j=2; j<=m; ++j)
{
cin>>a[j];
if(a[j]<=0)
applesum+=a[j];
else
{
if(applesum!=a[j])
{
if(flag[i]==0)
dropsum++;
flag[i]=1;
applesum=a[j];
}
}
}
leftsum+=applesum;
}
int e=0;
if(n>=3)
{
for(int i=2; i<n; ++i)
if(flag[i-1]+flag[i]+flag[i+1]==3)
e++;
if(flag[n]+flag[1]+flag[2]==3)
e++;
if(flag[n-1]+flag[n]+flag[1]==3)
e++;
}
cout<<leftsum<<" "<<dropsum<<" "<<e;
return 0;
}