ブルーブリッジカップ前の質問の質問アリ冷たいです

ブルーブリッジカップ埋めいくつかの質問は、前の質問に六角形

N-アリ100センチ直ポール細長いです。彼らの頭といくつかの左、右にいくつか。
各ANTは、速度を1cm / secである、ポールに沿って前方にクリープすることができます。
2匹のアリが出会うとき、反対方向にクロール中、彼らは好転します。
これらのアリ、アリは風邪をひいています。そして、ときに他のアリ、あなたが遭遇する風邪にアリを満たしています。

してください仕事、すべてのアリは、極から離れてクロールされたとき、どのように多くの寒さに苦しんアリ。
入力
最初の入力整数のラインN(1 <N <50)のは 、 アリの総数を表します。

続いてN行が西(-100 <Xiの<100)、西、ポールの左端から離れるアリの絶対値が整数スペースで区切られています。正の値は左方向にヘッドが負の値を表し、データ値0が表示されない、それは2匹の蟻が表示され、同じ位置を占めていないだろう、頭の右方向を示しています。風邪のその中でも、アリ最初のデータの代表。

出力は
出力にアリ最終冷間の数を表す整数を必要としました。

サンプル入力
。5
-10 8 -20 12は、25であります

サンプル出力
3

>私は、彼らが互いの身体を通過し、上移動するとそこに理解することができると思う - 2匹のアリが出会うとき、彼らはクロール中、反対方向に回します。

我々はアリ寒さの条件を満たすべきことに、分析を描画する例を使用することができます

  1. 彼らは比較的寒さだったことアリ、アリとライン意志を持つ最初の冷たいフロント行きます
  2. 冷たいアリの後ろ(の背後にここで冷たいアリはその後、彼は寒さの中に取り残されています右に登る場合は、相対的である、アリを言った)、それが同じ方向を言っているとアリのラインが風邪をひくかもしれません。

それは寒さが必ずしもアリ比較的寒さと感染症の行を言っているが、ラインの相対は、それが最初の比較的低温のアリとラインが、しかし、必ずしもではないしなければならない場合は、単純に求められることができるので、なぜそれが、可能性インフルエンザでありますそうアリとアリ反対の行と最初のコールドがあるかどうかを決定するために、最初にアリ比較的冷たいと線とアリが存在するであろう。

#include <iostream>
using namespace std;
int main()
{
	int n, a[55], i, sum = 1, temp;
	cin >> n;
	for (i = 0 ; i < n ; i++)
	{
		cin >> a[i];
	}
	temp = a[0];//记录初始感冒蚂蚁
	if (temp >= 0)//初始感冒蚂蚁朝右走 
	{
		for (i = 0 ; i < n ; i++)
		{
			if (a[i] < 0 && -a[i] > temp)//在初始感冒蚂蚁的右边并且与其相对而行,即满足第一个条件
			{
				sum++;
			}
		}
		if (sum != 1)//判断第二个条件能否继续进行,即是否有与初始感冒蚂蚁相对而行的蚂蚁
		{
			for (i = 0 ; i < n ; i++)
			{
				if (a[i] > 0 && a[i] < temp)//在初始感冒蚂蚁的左边并且与其同向而行,即满足第二个条件
				{
					sum++;
				}
			}
		}
	}
	else
	{
		for (i = 0 ; i < n ; i++)
		{
			if (a[i] > 0 && a[i] < -temp)//在初始感冒蚂蚁的左边并且与其相对而行,即满足第一个条件
			{
				sum++;
			}
		}
		if (sum != 1)
		{
			for (i = 0 ; i < n ; i++)
			{
				if (a[i] < 0 && a[i] < temp)//在初始感冒蚂蚁的右边并且与其同向而行,即满足第二个条件
				{
					sum++;
				}
			}
		}
	}
	cout << sum;
}

間違った場合は、トラブルアウトポイント!見ていただきありがとうございます!

おすすめ

転載: blog.csdn.net/qq_44410340/article/details/104969448