Stripies POJ - 1862

当社の化学生物学者はstripies( - polosatikiが、科学者は、国際特許を申請し、英語名を発明しなければならなかったという事実に、彼らは最初にロシア語で呼ばれた)と呼ばれる生命の新しい非常に有用な形態を発明しました。stripiesはゼリー状の栄養培地中でフラットな植民地に住んで透明アモルファスamebiformの生き物です。ほとんどの時間stripiesが動いています。それらの二つが衝突すると新しいstripieではなく、それらを表示されます。私たちの科学者によって作られたロング観測は、新たなstripieの重量が衝突し2消えstripiesの重みの和と等しくないことを証明するためにそれらを有効に。それにもかかわらず、彼らはすぐに重みM1、M2の2 stripiesが衝突したときにstripieの結果としての重量が2 * SQRT(M1の*の平方メートル)に等しいことを学びました。 
あなたはこの質問に答えるためにそれらを助けるプログラムを書くことです。あなたは3以上stipiesが一緒に衝突したことがないと仮定してよいです。 

入力

コロニー内stripiesの数 - 入力の最初の行は、一つの整数N(1 <= N <= 100)を含みます。対応stripieの重量 - 次のNラインの各々は、1から10000の範囲の1つの整数を含んでいます。

出力

出力は、ポイント後の3桁の精度でコロニーの最小の可能な総重量を有する一行を含んでいなければなりません。

サンプル入力

3 
72 
30 
50

サンプル出力

120.000 

翻訳:重量をマージ、生物学的マージは、2 * SQRT(W1の* W2の)です 。最後に、最小重量をお願いします。

アイデア:最初のかさばるマージ。注文後、大きなスタートからマージします。

1の#include <cstdioを>
 2の#include <fstreamの>
 3の#include <アルゴリズム>
 4の#include <cmath>
 5の#include <両端キュー>
 6の#include <ベクトル>
 7の#include <キュー>
 8の#include < ストリング >
 9#含む<CStringの>
 10の#include <地図>
 11の#include <スタック>
 12の#include < セット >
 13の#include <sstream提供さ>
 14の#include <入出力ストリーム>
15件 の#define MOD十億七
 16  の#defineのEPS 1E-6
 17 #defineは長い長いちゃう
 18  の#define 0x3f3f3f3f INF
 19  使って 名前空間STDを、
20  
21  INT N。
22  二重 SZ [ 105 ]。
23  
24  のint main()の
 25  {
 26      のscanf(" %d個"、&N)
27      のためには、int型 i = 0 ; iがn <; iは++ 28      {
 29          のscanf(" %のLF "、&SZ [I])。
30      }
31      ソート(SZ、SZ + N)。
32個の     ダブル S =のSZ [N- 1 ]。
33      のためには、int型、I = N 2、iは> = 0 ; i-- 34      {
 35個の          S = 2 *のSQRT(S * SZ [I])。
36      }
 37      のprintf(" %の.3lf " 、S);
38 }

 

おすすめ

転載: www.cnblogs.com/mzchuan/p/11209546.html