Saya berada di dalam bus hari ini, dan memperhatikan tanda ini:
seated standing wheelchairs
max1 37 30 00
max2 36 26 01
max3 34 32 00
Jumlah penumpang, penumpang, dan kursi roda yang duduk semua harus tidak lebih besar dari beberapa baris dalam tabel. (Lihat obrolan untuk detailnya.)
Untuk keperluan tantangan ini, kami akan menggeneralisasi ide ini: Diberikan daftar bilangan bulat non-negatif dengan panjang positif N (jumlah jenis penumpang) dan matriks bilangan bulat non-negatif dengan dimensi positif ketat (kolom N dan satu baris per konfigurasi , atau transpos ini), kembalikan daftar indeks / kebenaran-palsu / dua-nilai unik yang menunjukkan batas konfigurasi yang dipenuhi.
Misalnya dengan matriks di atas:
30,25,1
→ [1]
(0-diindeks) [2]
(1-diindeks) atau [false,true,false]
(Boolean) atau ["Abe","Bob","Abe"]
(dua nilai unik) dll.
Kasing uji berikut menggunakan matriks di atas dan 0/1 untuk false / true:
[30,30,0]
→ [1,0,1]
[30,31,0]
→ [0,0,1]
[35,30,0]
→ [1,0,0]
[0,0,1]
→ [0,1,0]
[0,0,0]
→[1,1,1]
[1,2,3]
→[0,0,0]
Kasing uji berikut menggunakan matriks berikut:
1 2 0 4
2 3 0 2
[1,2,1,2]
→ [0,0]
[1,3,0,1]
→ [0,1]
[1,2,0,3]
→ [1,0]
[1,2,0,1]
→[1,1]
[30,31,0]
mungkin[1, 1, 1]
karena diliputmax3
?0
dan ada yang salah di tempat1
?)[x,31,z]
mengesampingkanmax1
danmax2
karena mereka tidak mengizinkan 31 orang yang berdiri.Jawaban:
APL (Dyalog Unicode) ,
53 byteCobalah online!
sumber
∧.≤
^_^
>,<
@.@
Haskell,
2220 bytePengembalian
False
jika legal danTrue
jika tidak.Cobalah online!
Membalik Benar / Salah karena nilai pengembalian menghemat 2 byte (terima kasih @ user202729!). Dengan
True
untuk hukum itumap.(and.).zipWith(<=)
(22 byte). Cobalah online!sumber
Oktaf , 15 byte
Cobalah online!
Sesuai komentar sundar, menghilangkan transpose menghemat 2 byte.
sumber
b
sebagai vektor kolom alih-alih vektor baris (karena hanya ditentukan sebagai daftar), menghemat 2 byte: Coba online!MATL , 3 byte
Cobalah online!
Mengambil matriks input sebagai transpose format dalam pertanyaan (sebagaimana diizinkan oleh OP), dengan satu kolom per konfigurasi. Output boolean 0 dan 1 untuk false dan true.
sumber
R ,
323026 byteCobalah online!
Menerima matriks dalam bentuk transposed sebagai
x
, test config asy
. Mengembalikan vektor boolean.Initial -2 bytes berkat mnel, dan lebih lanjut -4 oleh JayCe.
sumber
Jelly , 3 byte
Cobalah online!
0
= Benar,1
= Salah.sumber
<§
akan berhasil<§
bukan "kebenaran-palsu" tetapi "palsu-kebenaran", yang, sayangnya, bukan yang ditantang oleh tantangan.≥
.Ohm v2 , 3 byte
Cobalah online!
Algoritma: vektor
>
(lebih besar dari),Σ
jumlah masing-masing,y
tanda.sumber
JavaScript (ES6), 38 byte
Mengambil input sebagai
(matrix)(vector)
. Mengembalikan array Boolean.Cobalah online!
sumber
Haskell , 30 byte
Cobalah online!
sumber
Retina 0.8.2 , 57 byte
Cobalah online! Tautan termasuk kasus uji, tetapi output semua berjalan bersama. Penjelasan:
Konversikan ke unary.
Berikan setiap baris matriks salinan daftar itu sendiri.
Beroperasi secara terpisah pada setiap baris matriks.
Hapus berulang-ulang jumlah baris terakhir dan daftar sementara jumlah terakhir baris paling tidak sama besar dengan daftar.
Maka harus ada satu nomor yang tersisa dalam daftar dan jumlah di baris paling tidak harus sebesar itu.
sumber
Japt ,
65 byte-1 byte dari @Shaggy
Cobalah online!
sumber
VgY
->Vv
untuk menyimpan byte.Python 2 , 38 byte
Cobalah online!
sumber
05AB1E , 5 byte
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
Sayangnya 05AB1E v1 tidak memiliki built-in 1-char untuk
≤
atau≥
, jadi saya mengurangi nilai masing-masing sebelum menggunakan›
. 05AB1E v2 yang saat ini dalam pengembangan akan memiliki builtin ini.sumber
Stax , 8 byte
Jalankan dan debug itu
Penjelasan:
sumber
Brachylog , 14 byte
Cobalah online!
sumber
Bahasa Wolfram (Mathematica) , 18 byte
Mengembalikan daftar dua nilai unik:
True
berarti falsy,False
berarti benar.Cobalah online!
sumber