Dalam dunia multidimensi steam-punk, bos kami ingin menambahkan label indeks yang dicetak ke setiap laci di lemari arsip multidimensi konglomerat kami.
Bos ingin mengeset seluruh lembar label sebagai bentuk tunggal, menggunakan font yang dibeli hanya untuk tujuan ini, jadi kita harus memesan jenisnya (potongan simbol logam). Karena jenisnya sangat mahal, pesanan kami harus sesuai dengan jumlah persis dari setiap simbol angka.
Untuk satuan dimensi tertentu yang diberikan (dengan cara apa pun) ≥ 0, kembalikan (dengan cara apa pun) pesanan kami, yang merupakan tabel frekuensi digit yang diperlukan untuk mengeset semua koordinat Cartesius. Itu harus diatur oleh urutan tampilan keyboard (yaitu 0 setelah 9), dan mungkin tidak termasuk urutan 0 macam, jadi jika tidak ada jenis yang harus dipesan sama sekali (karena dimensi memiliki panjang 0); cetak apa-apa.
- Bonus -3 macam jika kode Anda dapat menangani (yaitu mencetak apa-apa) 0 dimensi juga.
- Karakter baris baru dapat diterima.
- Larangan pada celah standar berlaku.
- Seperti disebutkan, jenis mahal, ini karena itu codecolf .
Jiwa yang baik hati dapat mengedit tantangan ini untuk memasukkan penilaian otomatis, jadi sertakan tajuk seperti:# LanguageName, 123 sorts
Uji kasus
Diberikan 11
, cetak:
1 4
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
0 1
karena label dibutuhkan adalah 1
, 2
, 3
, 4
, 5
, 6
, 7
, 8
, 9
, 10
, dan 11
.
Diberikan 2 3
, cetak:
1 5
2 5
3 2
karena label dibutuhkan adalah 1 1
, 1 2
, 1 3
, 2 1
, 2 2
, dan 2 3
.
Diberikan 2 0
, cetak baris kosong:
atau tidak sama sekali.
Diberikan 1 2 3
, cetak:
1 11
2 5
3 2
karena label dibutuhkan adalah 1 1 1
, 1 1 2
, 1 1 3
, 1 2 1
, 1 2 2
, dan1 2 3
Diberikan 5 5 5 5
, cetak:
1 500
2 500
3 500
4 500
5 500
Dan tidak, saya tidak akan mencantumkan semua 625 label.
Jawaban:
Dyalog APL,
107Panjang kode 10 byte dan memenuhi syarat untuk bonus.
Terima kasih kepada user46915 selama 3 byte!
Perhatikan bahwa
⎕
(input) tidak berfungsi di TryAPL; Anda dapat mencoba formulir fungsi di sini .Saya tidak sepenuhnya memahami
⌸
operator, tetapi{⍺}⌸
mencantumkan nilai unik yang diambil, dan{⍵}⌸
mencantumkan tempat mereka dalam argumen.Ini memiliki urutan yang benar karena ini adalah urutan di mana angka muncul dalam array label multidimensi.
sumber
⌸
operator utama.,∘≢⌸
tanpa produk luar dengan yang unik dan semacam itu ?! Dyalog sungguh luar biasa. Juga,∘≢⌸
lebih pendek dari{⍺,≢⍵}⌸
.Mathematica, 48 byte - 3 = 45
sumber
Mathematica,
11185 byteSebagian besar pekerjaan di sini dilakukan oleh
DigitCount
.sumber
Grid[Thread@{Range@10~Mod~10,DigitCount@Tuples@Range@#~Total~2}~DeleteCases~{_,0}]&
R, 110 byte
Disimpan 4 berkat Alex A. (terima kasih!)
sumber
x
sekali sehingga Anda hanya bisa mengganti satu kejadianx
denganscan()
. Juga mengapa menetapkanz
?x
. Saya menetapkan outputMap
kez
variabel jika tidakMap
akan mencetak output ke stdout. Praktik yang lebih baik adalah membungkusMap
di dalaminvisible()
tapi itu banyak karakter ...Ruby, 92 byte
Mengambil panjang sebagai argumen baris perintah:
sumber
CJam, 31 byte
Cobalah online
Kode adalah 34 byte, dan membutuhkan 3 byte bonus untuk bekerja dengan daftar input kosong. Input adalah daftar dalam format CJam, misalnya:
Penjelasan:
sumber
Pyth, 15 byte
sumber
Haskell, 125 byte
sumber