タイトル説明
毎日正午にダースの学校の鐘、早めの夕食を食べるために学生は、チームの限り行がカフェテリアに向けたオオカミのようなものではない学生は、これは非常に危険な実行されているため、学校の指導者たちは、これは非常に心配見ますので、我々はDafan要件を開始する必要があり、すべての学生が食堂に来ている、とダウンDafanキューイングの固定順序は、そう誰もが奪われていない必要はありません。
学校Nの合計(1≤N≤100)の生徒、学生を保つためにも知られているそれぞれの生徒Dafanのために必要な時間は、並んで待つのための時間のように、すべてを待っている生徒のラインを設計すること、怒っていたと最小待機時間開始Dafanからの所要時間は、最初の学生が時間を待って、ラインアップし始めているが、ゼロです。
新鮮なリーダーシップは時間や状況を待っているの最小値を確保するために可能な限りのラインアップに変更したい学生を与えるために、私はあなたが私を助けることはできますか?全順序をどのように多くの行を知りたいのですが?
入出力フォーマット
入力フォーマット:
最初の行は、整数N(1≤N≤100)を入力し、学生の数を表します。
中間空間によって分離された(1〜100)は、第2の正の整数N個の入力ラインは、各学生Dafanは、必要な時間を表します。
出力フォーマット:
、第二の数は、大きくてもよい出力二つの整数の行は、最初の数字は最小の待ち時間を示しており、第2の整数は、時間および待機の前提の下で保証された最小キューイングスキームの数を表す出力方式の総数はそれほど2011年の残りの部分。
サンプル入力と出力
サンプル入力:
4 1 2 1 2
出力例:
7 4
説明
サンプル説明:
4.3 12 4.1 34 2,3- 142、待機時間が7スキーム132をキューイングの4種類があります。
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 int型のn、[ 120 ]、B [ 120 ]、C [ 120 ]、ANS。 INT メイン() { CIN >> N。 以下のために(int型 i = 1 ; iが<= N; iは++)CIN >> [I]、B [I]] ++ ; ソート( + 1、A + 1個の + N)。 以下のために(int型 i = 1 ; iが<= N; iが++)C [i]は[I-= 1 ] + C [I- 1 ]、ANS + = C [i]は、 coutの << ANS << " "; 年 = 1 ; 以下のために(int型 i = 1 ; iは= < 100 ; iは++ ) { int型、L = 1 。 用(INTの J = 1 ; J <= bの[I]; J ++)L * = jを、1%= 2011 。 年 * = リットル; 年%= 2011 ; } Coutを << 年。 リターン 0 ; }