Anda diberi peta teater bioskop sebagai matriks boolean: 0 mewakili kursi gratis, 1 - ditempati. Setiap orang Finlandia yang berjalan memilih kursi yang paling jauh ( jarak Euclidean ) dari yang diduduki terdekat, atau jika ada beberapa yang ada - yang pertama di antara mereka dalam urutan baris utama . Keluaran matriks yang menunjukkan urutan kursi pada akhirnya akan ditempati; yaitu, ganti 0s dengan 2, 3, 4, dll
// in
0 0 0 0 1
0 0 0 0 0
0 0 0 0 0
0 0 1 1 0
// out
2 8 3 9 1
10 5 11 6 12
4 13 14 15 7
16 17 1 1 18
// in
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
// out
5 43 17 44 45 46 18 47 8 48 49 6 50 19 51 2
52 24 53 54 1 55 56 25 57 26 58 59 27 60 28 61
20 62 63 29 64 65 1 66 30 67 68 21 69 9 70 71
72 73 1 74 31 75 76 77 78 1 79 80 32 81 82 11
12 83 84 1 85 86 87 13 88 89 90 14 91 92 33 93
94 34 95 96 97 15 98 99 35 100 36 101 102 1 103 22
104 105 37 106 38 107 39 108 109 16 110 40 111 112 41 113
4 114 115 7 116 23 117 3 118 119 42 120 1 121 122 10
// in
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
// out
2 38 39 26 40 6 41 42 12 43 44 7 45 46 27 47 3
48 49 15 50 28 51 52 29 53 30 54 55 56 16 57 31 58
32 59 60 33 61 62 17 63 64 65 18 66 67 68 34 69 35
70 10 71 72 13 73 74 75 1 76 77 78 11 79 80 14 81
82 83 36 84 85 86 21 87 88 89 22 90 91 37 92 93 94
19 95 96 97 23 98 99 100 24 101 102 103 25 104 105 106 20
107 108 4 109 110 111 8 112 113 114 9 115 116 117 5 118 119
Format I / O fleksibel dalam norma-norma kode golf yang ada untuk bahasa Anda. Anda dapat berasumsi bahwa inputnya benar, dengan ukuran minimal 3x3, dan tidak seluruhnya terdiri dari nilai boolean yang sama. Tulis fungsi atau program lengkap. Solusi terpendek per bahasa dianggap sebagai pemenang; tidak ada jawaban yang akan diterima. Celah standar dilarang.
Jawaban:
MATL , 37 byte
Cobalah online! Atau verifikasi semua kasus uji . Anda mungkin juga ingin melihat sinema yang diisi oleh seni ASCII.
Penjelasan
sumber
JavaScript (ES6),
156137 byteDisimpan 18 byte berkat @ l4m2
Itu cukup banyak
map()
...Cobalah online!
Berkomentar
sumber
b=b<(d=X*X--+Y*Y)|!v?b:d
v|b<=B
v|
tidak perlu karena kalauv
begitub=0
Haskell ,
216213185184 byteMengambil input sebagai array. Input dan output dalam urutan terbalik. Penghargaan untuk magis fixed point ke Laikoni .
Cobalah online!
sumber
until((==)=<<f)f
Python 2 ,
200187 byteCobalah online!
-13 byte thx ke ujung dari Not that Charles dengan menghapus cek yang tidak dibutuhkan untuk sel menjadi 0.
sumber
,v,u
ke ujung generator di dalammax
, dan Anda tidak perlu melakukanif a[v][u]<1
karena itu akan0
dan karena itu tidak maks. Jadi baris saya pada dasarnya*_,y,x=max((min(...),-v,-u,v,u)for v,u in P)
*,v,u
karakter TIDAK penghematan dibandingkan yang--
Anda miliki. :)if a[v][u]<1
berlebihan (karena non zero-sel akan memilikimin()
dari0
).J ,
747060 byteCobalah online!
sumber
APL (Dyalog) , 39 byte
Terima kasih Sapi dukun untuk menyimpan satu byte, dan ngn untuk menyimpan yang lain
Cobalah online!
sumber
Jelly , 43 byte
Cobalah online!
sumber
APL (Dyalog Unicode) , 44 byte
Cobalah online!
Solusi alternatif pada 44 byte
sumber
Bahasa Wolfram (Mathematica) , 121 byte
Cobalah online!
sumber
Clojure, 247 byte
Input adalah vec-of-vecs
M
, yang dimodifikasiloop
olehassoc-in
. Ketika tidak ada tempat bebas ditemukan (if-let
) maka hasilnya dikembalikan.sumber
Jelly ,
35333029 byteCobalah online!
Diganti
×ı+
denganæị
(menggabungkan kompleks), angka dua baru berdasarkanj.
dari J, menyimpan byte.Ini adalah versi yang lebih efisien untuk TIO. Cobalah online!
Penjelasan
sumber
K (ngn / k) ,
8175737270 byteCobalah online!
sumber