问题描述
思路
该问题需要统计三个数据,剩下的苹果总数,发生苹果掉落的苹果树的个数和连续三棵发生掉落的组数。苹果的总数可以在输入数据时进行计算,当输入负数时苹果数将减少,输入正数时需要进行比较,若不相等则说明有苹果掉落,修改当前记录的苹果数,使用数组来标记当前的树是否发生了掉落,若有苹果掉落则修改相应的数组元素,连续三棵发生苹果掉落的组数可以使用求余运算来使苹果树围成一个圈统计数目。
代码
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n;
cin>>n;
int T=0,D=0,E=0;
vector<int> vec(n,0);
for(int i=0;i<n;i++)
{
int number;
cin>>number;
int num;
cin>>num;
for(int j=1;j<number;j++)
{
int a;
cin>>a;
if(a<=0)
num+=a;
else
{
if(num!=a)
{
vec[i]=1;
num=a;
}
}
}
T+=num;
}
for(int i=0;i<n;i++)
{
if(vec[i]==1)
D++;
if(vec[i]==1&&vec[(i+1)%n]==1&&vec[(i+2)%n]==1)
E++;
}
cout<<T<<" "<<D<<" "<<E;
return 0;
}