Okul sezonuna geri döndü! Yani yarı zamanlı bir iş için okulun kütüphanesinde yardım ediyorsun. Sorun şu ki, baş kütüphaneci "Dewey Ondalık" kelimesini hiç duymamış bile olsa, bu sistemi uyguladı. Bunun yerine, kullanılan sıralama sistemi, kütüphane genişledikçe "organik olarak" büyüdü
Akıl sağlığınızı korumak için, kitapları geri gönderildiği gibi sıralamanıza yardımcı olacak bir program yazmayı seçtiniz, çünkü kitapları yanlış sıralarsanız, size aittir. (Baş kütüphaneci ÇOK katıdır.)
Giriş çıkış
- Girdi, STDIN / dil eşdeğerinden, her satırda bir tane olmak üzere (varsayımsal) kitap başlıklarının bir listesi olacaktır.
- Bir seferde 100'den fazla kitap girişi olmadığını varsayabilirsiniz (kütüphanede sadece bir defada çok fazla taşıyabilirsiniz).
- Kitaplar başlıklarında birden fazla kelime içerebilir ve bu kelimeler boşluklarla veya başka noktalama işaretleriyle (örn. İki nokta üst üste
:
, kısa-
. vb.) . - Hesaplama kolaylığı için, tüm başlıkların UTF-8 olduğunu varsayalım.
Çıktı, aşağıdaki kurallara göre, her satırda bir kez olmak üzere, STDOUT / dil eşdeğeri olarak sıralanan aynı başlıklardır.
Sıralama Kuralları
Kitaplar, ortalama karakter değerlerine göre (yani, toplam karakter değeri kitap başlığındaki karakter sayısını bölünür) temel alarak aşağıdaki kurallara göre sayılır:
- Tüm karakterler, bir başlıktaki karakter sayısını belirlemek için sayılır.
- Küçük harfler, alfabedeki konumlarına göre sayılır. (A = 1, b = 2, ... Z = 26)
- Başlık büyük harf içeriyorsa, bunlar küçük harflerin değeri 1.5'tir (A = 1.5, B = 3, ... Z = 39). (“Büyük harfler önemlidir!” Diyor kütüphaneci.)
- Bu listedeki her noktalama işareti / sembolü,
!@#$%^&*()-=_+[]\{}|;':",./<>?~
ortalama almadan önce kümülatif değerden -1 sayılır. ("Görkemli başlıklar değil!") - Başlık, Arap rakamlarıyla yazılmış bir sayı içeriyorsa , bu sayı sıralamadan önce ortalama değerden çıkarılır. Birden fazla ardışık basamak, tek bir sayı olarak değerlendirilir (örneğin,
42
4 çıkarmadan sonra 42'yi çıkarır ve daha sonra 2'yi çıkarır). Tek tek rakamlar kümülatif değer için sayılmaz (yani, her rakam 0 katkıda bulunur), ancak DO karakter sayısı için sayılır. Bunun negatif bir değere yol açabileceğini ve uygun şekilde ele alınması gerektiğini unutmayın. (Söylentiye göre, kütüphaneci birkaç yıldır matematik öğretmenine aşık oldu.) - Başlık bir ile başlayan iki ayrı sözcük içeriyorsa
R
, kitap "sonsuzluk" puanı alır ve köşedeki bir yığının içine dökülür (yani listenin sonunda rastgele düzenlenir). (Kütüphaneci bir zamanlar bu baş harfleri olan bir kişi tarafından terk edilmişti ya da siz duydunuz.) - Boşluklar, kümülatif karakter değeri için sayılmaz (yani, 0 katkıda bulunurlar), ancak DO, başlıktaki karakter sayısına katkıda bulunur.
- Yukarıdaki kurallara uymayan karakterler (örneğin, a
ÿ
) kümülatif karakter değerine sayılmaz (yani, 0 katkıda bulunurlar), ancak bir başlıktaki karakter sayısına DO katkıda bulunur. - Örneğin, varsayımsal bir kitabın
ÿÿÿÿÿ
"puanı" olur(0+0+0+0+0) / 5 = 0
, ancak varsayımsal kitabınÿÿyÿÿ
"puanı" olur(0+0+25+0+0) / 5 = 5
. - Aynı "puan" olan iki kitap, istediğiniz seçimde Çıktı olabilir. (Yine de aynı raftalar)
Örnek Giriş 1
War and Peace
Reading Rainbow: The Best Unicorn Ever
Maus
Home for a Bunny
Örnek Çıktı 1 (gerekçeleri göstermek için parantez içindeki "puanlar" ile - bunları yazdırmanız gerekmez)
War and Peace (8.5)
Home for a Bunny (10.125)
Maus (15.125)
Reading Rainbow: The Best Unicorn Ever (infinity)
Örnek Giriş 2
Matthew
Mark
Luke
John
Revelations
Örnek Çıktı 2 (gerekçeleri göstermek için parantez içindeki "puan" ile - bunları yazdırmanız gerekmez)
Mark (12.375)
John (13)
Revelations (13.545454...)
Luke (13.75)
Matthew (~13.786)
Örnek Giriş 3
42
9 Kings
1:8
7th
Örnek Çıktı 3 (gerekçeleri göstermek için parantez içindeki "puanlar" ile - bunları yazdırmanız gerekmez)
42 (-42)
1:8 (-9.3333...)
9 Kings (~0.36)
7th (2.3333...)
Diğer kısıtlamalar
- Bu Kod Golf'tür, çünkü programı kütüphanecinin sürekli izleyen gözlerinden gizlemeniz gerekir ve program ne kadar küçükse, saklanması o kadar kolay olur.
- Standart boşluk deliği kısıtlamaları uygulanır
- Bütün zamanını PPCG'de geçirerek kütüphanecinin seni gevşetmesine izin verme.