CCF 201909-2 Xiaoming種類のリンゴ(続き)
覚えておいてください:木は多くの果物や野菜を持つことができます
#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;
}
提出を開始した後、検討は十分に完了していないため、スコアは50になります。木を無視すると、果物と野菜が複数回になる可能性があります。これを考慮して変更し、再度送信すると、100ポイントを獲得できます。