学校シーズンに戻りました!アルバイトの場合、学校の図書館で手伝っています。問題は、主任司書が「デューイ十進法」という言葉さえ聞いたことがないことであり、そのシステムを実装したことは言うまでもない。代わりに、ライブラリが拡大するにつれて、使用中の分類システムが「有機的に」成長しました...
あなたの正気を保つために、あなたは本が返されるときに本を分類するのを助けるプログラムを書くことを選んだ。(ヘッドライブラリアンは非常に厳格です。)
入出力
- 入力は、STDIN /同等の言語からの(架空の)書籍タイトルのリストで、1行に1つずつです。
- 一度に入力できるのは100冊までです(一度に多くの本を図書館に持ち込むことができます)。
- 書籍のタイトルには複数の単語を含めることができ、これらの単語はスペースまたはその他の句読点(コロン
:
、ダッシュ-
など)で区切ることができます。 - 計算を簡単にするために、すべてのタイトルがUTF-8であると想定します。
出力は同じタイトルで、以下のルールに従ってソートされ、再び1行に1つずつ、STDOUT /言語に相当します。
ソート規則
書籍は、平均文字値(つまり、累積文字値を書籍タイトルの文字数で割った値)に基づいて数値順にソートされ、次の規則に従ってカウントされます。
- すべての文字は、タイトルの文字数を決定するためにカウントされます。
- 小文字は、アルファベットの位置によってカウントされます。(a = 1、b = 2、... z = 26)
- タイトルに大文字が含まれる場合、それらは小文字の値(A = 1.5、B = 3、... Z = 39)の1.5としてカウントされます。(「大文字が重要です!」司書は言います。)
- このリストの各句読点/記号は、
!@#$%^&*()-=_+[]\{}|;':",./<>?~
平均する前に累積値から-1をカウントします。(「壮大なタイトルは違います!」) - タイトルにアラビア数字で書かれた数字が含まれている場合、ソートする前にその数字が平均値から差し引かれます。複数の連続した数字は1つの数字として扱われます(たとえば、
42
4を減算してから2を減算するのではなく、42を減算します)。個々の数字は累積値にはカウントされません(つまり、各数字は0に寄与します)が、DOは文字数にカウントされます。これは負の値になる可能性があるため、適切に処理する必要があることに注意してください。(噂によると、司書は数年前から数学のインストラクターに夢中になっている。) - タイトルにで始まる2つの単語が含まれている
R
場合、本は「無限」のスコアを取得し、コーナーの山に捨てられます(つまり、リストの最後にランダムに配置されます)。(司書は、それらのイニシャルを持つ人によってかつて投げ捨てられた、またはあなたは聞いたことがあります。) - スペースは、累積文字値にはカウントされません(つまり、0は寄与します)が、タイトルの文字数には寄与します。
- 上記のルールに適合しない文字(例:a
ÿ
)は、累積文字値にはカウントされません(つまり、0に寄与します)が、タイトルの文字数には寄与します。 - たとえば、架空の本
ÿÿÿÿÿ
にはの「スコア」が(0+0+0+0+0) / 5 = 0
ありますが、架空の本ÿÿyÿÿ
にはの「スコア」があり(0+0+25+0+0) / 5 = 5
ます。 - 偶然同じ「スコア」の2冊の本を、選択した順序で出力できます。(とにかく同じ棚にあります)
入力例1
War and Peace
Reading Rainbow: The Best Unicorn Ever
Maus
Home for a Bunny
出力例1(理由を示すために括弧内に「スコア」を付けて-それらを印刷する必要はありません)
War and Peace (8.5)
Home for a Bunny (10.125)
Maus (15.125)
Reading Rainbow: The Best Unicorn Ever (infinity)
入力例2
Matthew
Mark
Luke
John
Revelations
出力例2(推論を示すために括弧内に「スコア」を使用-それらを印刷する必要はありません)
Mark (12.375)
John (13)
Revelations (13.545454...)
Luke (13.75)
Matthew (~13.786)
入力例3
42
9 Kings
1:8
7th
出力例3(理由を示すために括弧内に「スコア」を付けて-それらを印刷する必要はありません)
42 (-42)
1:8 (-9.3333...)
9 Kings (~0.36)
7th (2.3333...)
その他の制限
- これはCode-Golfです。なぜなら、プログラムを常に見守っている司書の目から秘密を守る必要があり、プログラムが小さければ小さいほど、隠すのが簡単だからです。
- 標準的な抜け穴の制限が適用されます
- PPCGにすべての時間を費やすことで、図書館員に怠け者を捕まえさせないでください。