ccf csp 2019年二題小明種果樹(続き)


ツッコミ:
明ちゃんの学友は本当に疲れて、后で私は逃げるのが好きで逃げて、学友はとても明ちゃんの学友を助けてこれらの仕事をして、金持ちになります!!!
タイトル:
私はこのブログを見ることができる人がきっと自分がすでに問題を見たことがあると信じて、ここで私はもう贅沢に述べません.
考え方:
考え方はおとなしく読んでからつけよう.ここは実は私が重点的に強調したいのはいくつかの木が何度も実を結ぶことができて、もし1本の木が何度も実を結ぶならば、彼はやはり1本の木を計算してここは必ず注意しなければならなくて、ずっと間違っていて、ずっと理解できなくて、それからインターネットに行って、ブログを調べて彼らの方法は死んで複雑で複雑で、まだ説明していません.最後に私が使った制御変数法で問題の所在を見つけました(私のコードで他の人の考えを混ぜて最後に果物の木を落とすステップWAが落ちたことを発見しました.このような細部の問題は私のような粗雑な男ですね.本当にかわいいゴミです.)
コード:
コードの中には多くのステップが余計で、私が変数法を制御する時に残した痕跡は自分で削除してください.どうせACになったら本当に心が疲れて、昨日の夜よく眠れなくて、ずっと頭の中でプロセス呼び出しをシミュレートして、それからどのテストポイントが問題があるのか考えています.最後にこのような弱い問題に気づいた.の泣き叫ぶ
#include 
#include 
#include 
/*          ,          */
using namespace std;
struct
{
     
	int a;
	bool b;
}ssbool[1007];

bool sssbool[1007];
int main()
{
     
	ios::sync_with_stdio(false);

	int N, qzg = 0, E = 0;
	vector<int> _v;
	cin >> N;

	for (int i = 1; i <= N; i++)
	{
     
		int n;
		cin >> n;
		for (int j = 1; j <= n; j++)
		{
     
			int t;
			cin >> t;
			if (j == 1)
			{
     
				ssbool[i].a = t;
				ssbool[i].b = false;
				sssbool[i] = false;
				continue;
			}

			if (t > 0)
			{
     
				if (t != ssbool[i].a)
				{
     
					auto a = find(_v.begin(),_v.end(),i);
					ssbool[i].a = t;
					ssbool[i].b = true;
					sssbool[i] = true;
					if (a == _v.end())
						_v.push_back(i);
				}
					
			}
			else
			{
     
				
				ssbool[i].a += t;
			}
		}

	}

	int _vs = 0;
	for (int i = 1; i <= N; i++)
	{
     
		qzg += ssbool[i].a;
		if (ssbool[i].b)
			_vs++;
	}

	for (long long int i = 1; i <= N; i ++)
	{
     
		if (sssbool[i])
		{
     
			if (i == 1 && sssbool[N] && sssbool[i + 1])
				E++;
			else if (i == N && sssbool[i - 1] && sssbool[1])
				E++;
			else if (sssbool[i - 1] && sssbool[i + 1])
				E++;
		}
	}

	printf("%d %d %d
"
, qzg, _v.size(), E); return 0; }

最後に交流を歓迎します.
QQ:1364388975