CCF 201909-2 Xiaoming kind of apple (continued)
Remember: a tree can have many fruits and vegetables
#include<iostream>
using namespace std;
int flag[1001] = { 0 }; // 用来标记是否该棵树有苹果掉落
int main()
{
int n;
cin >> n;
int T=0, D=0, E=0; // T苹果总数,D发生苹果掉落的苹果总棵数
// E相邻连续三棵树发生苹果掉落的情况的组数
int sum=0;
for (int i = 0; i < n; i++)
{
int m;
cin >> m;
int v; // 输入的整数,表示对苹果树的操作
int count = 0;
for (int j = 0; j < m; j++)
{
cin >> v;
if (v > 0)
{
if (sum > v) // 存在苹果掉落
{
count++;
flag[i] = 1;
}
sum = v;
}
else
sum += v;
}
if (count >= 1) D ++; // 切记:一棵树可以多次蔬果
T += sum;
}
for (int i = 1; i < n-1; i++)
{
if (flag[i - 1] == 1 && flag[i] == 1 && flag[i + 1] == 1)
E++;
}
if (flag[0] == 1 && flag[n - 2] == 1 && flag[n - 1] == 1)
E++;
if (flag[0] == 1 && flag[1] == 1 && flag[n - 1] == 1)
E++;
cout << T <<" "<< D << " " << E << endl;
return 0;
}
After starting the submission, the score is 50, because the consideration is not complete enough, ignoring a tree can be fruit and vegetables multiple times. After taking this into consideration, make changes and submit again, you can score 100 points.