Biaya Sumber Daya Jaringan Listrik
pengantar
Dalam permainan papan Power Grid , bagian integral dari permainan adalah tindakan membeli sumber daya untuk mengisi bahan bakar pembangkit listrik Anda. Ada empat jenis sumber daya yang digunakan dalam permainan (lima, jika Anda memasukkan energi terbarukan, tetapi jelas Anda tidak bisa membeli sumber daya untuk itu). Ini adalah Batubara, Minyak, Sampah, dan Uranium. Pasar sumber daya terlihat seperti ini:
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
Ketika sumber daya dibeli, mereka diambil dari kiri pasar, di mana mereka termurah. Ketika sumber daya baru ditambahkan ke pasar, mereka ditambahkan dari kanan. Seperti yang dapat dilihat, ini menghasilkan keseimbangan penawaran dan permintaan - jika lebih banyak sumber daya dari jenis tertentu dibeli daripada yang diisi ulang setiap putaran, harga sumber daya itu akan naik. Demikian pula, jika kurang, biayanya akan berkurang.
Batubara, Minyak, dan Sampah semuanya mengalami kenaikan pada tingkat yang sama, sementara skala Uranium jauh lebih cepat. Satu unit biaya sumber daya non-Uranium 8 - floor((<units available> - 1) / 3). Satu unit biaya Uranium 13 - <units available>jika ada 5 atau lebih unit yang tersedia, dan 18 - (2 * <units available>)sebaliknya.
Misalnya, pada awal permainan ada semua 24 unit Batubara tersedia untuk dibeli. Jika pemain pertama ingin membeli 4 unit Batubara, tiga unit pertama akan dikenakan biaya masing-masing 1, dan 4 unit akan biaya 2, sehingga total biaya 5. Ini membuat 20 unit tersedia. Jika pemain kedua juga ingin membeli 4 unit Batubara, biayanya adalah (2 * 2 + 2 * 3) = 10.
Tantangan
Tantangan Anda adalah menulis program atau fungsi yang menghitung biaya untuk membeli sejumlah tertentu sumber daya tertentu, dengan asumsi bahwa ada jumlah tertentu dari sumber daya yang ada di pasar.
Kiriman Anda harus menerima, dalam format input apa pun yang masuk akal dan dalam urutan apa pun, parameter berikut:
- Jenis sumber daya - dijamin menjadi salah satu dari [C, O, G, U].
- Jumlah sumber daya yang ada di pasar - dijamin sebagai bilangan bulat non-negatif. Jika jenis sumber daya bukan U, maka tidak akan lebih besar dari 24. Jika jenis sumber daya adalah U, maka tidak akan lebih besar dari 12.
- Jumlah sumber daya yang ingin dibeli pemain - dijamin bilangan bulat non-negatif yang kurang dari atau sama dengan jumlah yang sudah ada di pasar.
Keluaran harus berupa biaya sumber daya yang diminta.
Aturan tambahan
- Formula yang diberikan hanya untuk tujuan ilustrasi, jangan ragu untuk menggunakan metode apa pun dalam menghitung biaya yang Anda suka.
- Kode huruf untuk berbagai jenis sumber daya (C, O, G, U) dapat diganti dengan setara dengan huruf kecil. Anda juga dapat mengganti huruf untuk angka, baik dalam bentuk
C=0, O=1, G=2, U=3atauC=1, O=2, G=3, U=4. - Ini adalah kode-golf , jadi pengiriman terkecil dalam byte akan menjadi pemenangnya.
- Jika kiriman Anda memerlukan input dalam urutan atau format yang berbeda dari yang ditentukan di bagian sebelumnya, Anda harus memberikan perincian.
Uji kasus
Format kasus uji:
resource type, amount in market, amount to buy
> result
Kasus uji:
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) = 22danf(O, 10, 7) = 44 .

f("O",1,5)?