Güç Şebekesi Kaynak Maliyetleri
Giriş
Masa oyunu Power Grid'de , oyunun ayrılmaz bir parçası, güç istasyonlarınızı beslemek için kaynak satın alma eylemidir. Oyunda kullanılan dört tür kaynak vardır (beşi, yenilenebilir enerji eklerseniz, ancak açıkçası bunun için kaynak satın alamazsınız). Bunlar Kömür, Petrol, Çöp ve Uranyum. Kaynak pazarı şöyle görünür:
1---- | 2---- | 3---- | 4---- | 5---- | 6---- | 7---- | 8---- | 10 | 12
CCC | CCC | CCC | CCC | CCC | CCC | CCC | CCC | U | U
OOO U | OOO U | OOO U | OOO U | OOO U | OOO U | OOO U | OOO U | 14 | 16
GGG | GGG | GGG | GGG | GGG | GGG | GGG | GGG | U | U
Kaynaklar satın alındığında, en ucuz oldukları pazarın solundan alınır. Piyasaya yeni kaynaklar eklendiğinde, bunlar sağdan eklenir. Görülebileceği gibi, bu bir arz ve talep dengesi üretir - her turda yenilenenden daha fazla kaynak satın alınırsa, o kaynağın fiyatı artacaktır. Benzer şekilde, eğer daha azsa, maliyet azalacaktır.
Kömür, Petrol ve Çöp maliyetleri aynı oranda artarken Uranyum çok daha hızlı ölçekleniyor. Uranyum dışı kaynak maliyetlerinin tek bir birimi 8 - floor((<units available> - 1) / 3). 13 - <units available>5 veya daha fazla birim varsa tek bir Uranyum birimi maliyeti , 18 - (2 * <units available>)aksi takdirde.
Örneğin, oyunun başında 24 adet Kömür satın alınabilir. İlk oyuncu 4 adet Kömür satın almak isterse, ilk üç birim her birine 1, dördüncüsü 2'ye mal olur, bu da toplam maliyeti 5 yapar. İkinci oyuncu da 4 adet Kömür satın almak isterse, maliyet (2 * 2 + 2 * 3) = 10 olacaktır.
Meydan okuma
Sorun, pazarda mevcut olan belirli bir kaynağın var olduğunu varsayarak, belirli bir kaynağın belirli bir miktarını satın alma maliyetini hesaplayan bir program veya işlev yazmaktır.
Gönderiniz makul herhangi bir girdi biçiminde ve herhangi bir sırada aşağıdaki parametreleri kabul etmelidir:
- Kaynak türü - [C, O, G, U] 'dan biri olması garanti edilir.
- Piyasada bulunan bu kaynağın miktarı - negatif olmayan bir tamsayı olarak garanti edilir. Kaynak türü U değilse, 24'ten büyük olmaz. Kaynak türü U ise, 12'den büyük olmaz.
- Bir oyuncunun satın almak istediği kaynağın miktarı - piyasada mevcut olan miktardan daha az veya ona eşit olan negatif olmayan bir tamsayı olması garanti edilir.
Çıktı, istenen kaynakların maliyeti olmalıdır.
Ek Kurallar
- Verilen formüller sadece açıklama amaçlıdır, istediğiniz maliyetleri hesaplamak için herhangi bir yöntemi kullanmaktan çekinmeyin.
- Farklı kaynak türleri (C, O, G, U) için harf kodları küçük harf eşdeğerleriyle değiştirilebilir. Ayrıca, sayıların harflerini formda
C=0, O=1, G=2, U=3veya biçiminde değiştirebilirsinizC=1, O=2, G=3, U=4. - Bu kod golfüdür , bu nedenle bayttaki en küçük gönderim kazanan olacaktır.
- Gönderiniz, girişi önceki bölümde belirtilenden farklı bir düzen veya biçimde gerektiriyorsa, ayrıntıları belirtmeniz gerekir.
Test senaryoları
Test örneği formatı:
resource type, amount in market, amount to buy
> result
Test senaryoları:
C, 24, 4
> 5
C, 20, 4
> 10
O, 3, 3
> 24
U, 1, 1
> 16
C, 1, 1
> 8
G, 0, 0
> 0
O, 10, 7
> 44
U, 12, 4
> 10
G, 11, 4
> 22
f(G, 11, 4) = 22ve f(O, 10, 7) = 44.

f("O",1,5)?