羅区P1007

トピック背景
戦争は重要な時期に入りました。あなたは輸送チームのリーダーです、彼は前線に物資を提供する輸送部隊を率いています。輸送作業のように同じ退屈な質問を行います。あなたは、あなたが兵士を楽しむために橋の下に滞在しながら、景色を楽しむために、単板の橋の前に、あなたの兵士を注文し、いくつかの刺激を見つけたいです。兵士たちは狭いですが、それが唯一の通過11人を収容することができますので、このシングル板ブリッジの非常に怒っていました。22人が橋の上で互いに途中のラインを満たすがある場合のみ、11人が橋の下に戻って、その後、彼らはとにかく、他の22人のバイパスに、他の人が通り抜けるようになります。しかし、同じ位置に同じ時間滞在で、複数の人。

タイトル説明は
突然、あなたがどこにあるか、シングル板ブリッジに向かって飛んで敵の爆撃機があること、本社からのメッセージを受け取るて送信!セキュリティのために、あなたの軍隊は難しい道をとっています。シングル板ブリッジ長さLLは、兵士たちは、唯一の場所整数座標に滞在することができます。全ての速度は11人の兵士であるが、いくつかの点で兵士座標00又はL + 1L + 1つの位置に来て、彼は、単板のブリッジを残しました。

各兵士が顔に初期方向を持って、彼らは自分の道の方向を変えていない、その方向に一定の速度で移動します。2人の兵士が顔に顔を満たしていれば、彼らは歩行を継続することになったので、しかし、彼らは、お互いにお互いを渡すことはできません。彼はなって、任意の時間を必要としません。

そのため、以前の怒りのため、あなたの兵士を制御することはできません。でも、あなたも知らない、各兵士の最初の方向に直面することはできません。だから、あなたは、シングル板ブリッジから撤退でき軍の最小値を必要とするどのくらいの時間を知りたいです。また、あなたは軍隊で最も困難な道の完全撤退する必要がどのくらいの時間を知っておく必要がありますので、また、本部はまた、敵の攻撃をブロックするように手配します。

入力フォーマット
最初のライン:整数LLは、困難な経路長を表します。橋の座標は11です... LL

第二行:整数NNは、橋の上の最初の滞在の数を表す場合兵士

第三行:そこNN整数、それぞれ、各兵士の初期座標。

出力形式は
、単一の最小時間および最大時間にのみ一行、二つの整数の出力、それぞれ部隊の引き出しです。二つの整数は空白文字で区切られています。

入力
。4
2
。1. 3
出力
24

取扱説明書/ヒント
同じ座標で初期状態では、2人の兵士ません。

質問の意味:長いnは兵士の数Lにブリッジからの単板の橋離れて滞在する、兵士だけ左または右フロントラインと速度は、2つの顔の兵士に顔を満たすだろうというとき、1である後方に回して、最初に尋ねたがあるようで最新逃げる兵士がどのくらいブリッジた
アイデア:究極の目標は、長さLの線分を終了することで、シミュレーションは確かに仕事に行くされていない、我々は兵士の状況は、他の側から見ることができ遭遇し、それがあることは明らかです影響を与えずに、全回答、限り我々は左の位置を、読み、右、それぞれ、最小値から最大値を取って考えるとすることができます。

#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int n,l,p;

    cin >> l >> n;

    int maxx,minx;

    maxx=minx=0;

    for(int i=1;i<=n;i++)
    {
        cin >> p;

        maxx=max(maxx,max(l-p+1,p));/// L-p-1 p 分别是向左或向右  求最大
        minx=max(minx,min(l-p+1,p));/// 求最小
    }

    cout << minx << " " << maxx << endl;

    return 0;
}

公開された54元の記事 ウォンの賞賛0 ビュー1226

おすすめ

転載: blog.csdn.net/weixin_44144278/article/details/99361617