CCF 201909-2 Xiaoming kind of apple (continued) (score 100)

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.

Published 7 original articles · liked 0 · visits 72

Guess you like

Origin blog.csdn.net/qq_27538633/article/details/105495318