Tujuan
Mengingat World Series berada di tikungan, saya membutuhkan sebuah program yang dapat membaca skor kotak dan memberi tahu saya apa itu inning. Ini sedikit rumit karena enggak menggunakan metode aneh untuk mencatat skor. Mereka tidak menuliskan skor tim at-kelelawar untuk inning sampai mereka mencetak skor lari (dan masih berjalan) atau telah menyelesaikan at-kelelawar mereka. Jadi 0 di papan skor selalu berarti selesai di-kelelawar. Sebagai contoh:
Example A:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| 0| | | |
Example B:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| 1| | | |
Example C:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| | | | |
#Them is the Away Team, Us is the Home Team (who are the guys you root for)
- Contoh A: Kita tahu bahwa kita berada di atas tanggal 7 karena Kami memiliki 0 yang tercatat di Bawah ke-6 dan Atas dari ke-7 kosong.
- Contoh B: Ini bisa menjadi Bawah ke-6 atau Atas ke-7.
- Contoh C: Ini bisa menjadi Atas atau Bawah ke-6.
Tugas Anda adalah mengembalikan inning yang mungkin.
Memasukkan
Dua daftar bilangan bulat non-negatif. Daftar akan dianggap bergerigi dengan daftar tim Tamu yang berukuran sama atau satu elemen lebih besar dibandingkan dengan tim Tuan Rumah. Anda dapat mengambil skor dalam urutan mana pun tetapi nyatakan dalam jawaban Anda jika Anda tidak menggunakan default. Yakni, Tim Tamu kemudian tim Tuan Rumah (default), atau tim Tuan Rumah kemudian Tim Tamu (terbalik). Mereka juga dapat diisi dengan data boneka jika Anda mau, sebutkan jawaban Anda jika Anda melakukannya.
Keluaran
String atau sesuatu yang setara yang mengidentifikasi nomor inning dan apakah itu atas atau bawah. Misalnya 7B 8T
, B7 T8
, ['7B','8T']
semua baik-baik saja. Jika ada dua jawaban, Anda harus menampilkan keduanya. Formatnya cukup fleksibel.
Aturan
- Masukan akan selalu valid
- Game dapat masuk ke babak tambahan tak terbatas. Program Anda harus dapat mendukung hingga 255 inning.
- Celah Standar dilarang
- Ini adalah kode-golf sehingga kode terpendek menang
Uji Kasus
#Input:
[[],
[]]
#Output: 1T
#Input:
[[0],
[]]
#Output: 1B
#Input:
[[0,0,0,1],
[0,0,0,0]]
#Output: 5T
#Input:
[[0,0,0,1],
[0,0,0,1]]
#Output: 4B, 5T
#Input:
[[0,0,0,1,0,0,1,0,0,1],
[0,0,0,0,1,0,0,1,0,1]]
#Output: 10B, 11T
#Input:
[[0,0,0,1],
[0,0,0]]
#Output: 4T, 4B
#Input:
[[0,0,0,0],
[0,0,0]]
#Output: 4B
Jawaban:
C (gcc) , 50 byte
Mengambil input sebagai pointer ke daftar yang disisipkan (yaitu
{them#1, us#1, them#2,...}
).Mengembalikan satu opsi melalui modifikasi, dan yang lainnya melalui nilai pengembalian.
Nilai negatif menunjukkan bagian bawah inning, nilai positif menunjukkan bagian atas inning. Nol adalah "kosong". Nilai absolut dari output adalah jumlah inning. Jadi,
-4,5
tunjukkan kemungkinan berada di atas yang kelima dan terbawah dari yang keempat, dan1,0
tunjukkan satu-satunya kemungkinan menjadi yang teratas.Nilai pengembalian makro dapat digunakan untuk menentukan apakah ada satu atau dua inning yang memungkinkan; nilai kembali adalah
0
jika tidak ada inning lainnya. Kalau tidak, itu adalah jumlah inning.Nol byte kode sumber. Gunakan yang berikut ini sebagai tanda preprosesor:
Cobalah online!
Degolf
sumber
Perl 6 ,
52 4845 byte-3 byte berkat beberapa restrukturisasi dari nwellnhof!
Cobalah online!
Blok kode anonim yang mengambil input sebagai dua daftar, atas lalu bawah. Output adalah daftar tupel, di mana elemen pertama adalah nomor inning dan elemen kedua Benar atau Salah, sesuai dengan Bawah atau Atas.
Penjelasan:
sumber
R ,
10396 byteCobalah online!
@digEmAll menyimpan 7 byte!
Mengambil dua
daftarvektor sebagai input, dan menghasilkan satu atau dua bilangan bulat yang mewakili kemungkinan inning. Bilangan bulat positif adalah bagian atas inning, dan bilangan bulat negatif adalah bagian bawah inning.Dalam R, bilangan bulat positif adalah benar, jadi saya bisa menggunakan perbedaan panjang sebagai argumen pertama
if()
.sumber
[[
sebagaiif
pengganti karena Anda menggunakan[
kode Anda.<
dan^
. Saya pikir[
adalah yang digunakan dalam contoh yang saya ingat.'if'
(dan menghapus{}
dan pindah kef=
luar): 96 byteJavaScript (Node.js) , 75 byte
Cobalah online!
sumber
Jelly , 11 byte
Cobalah online!
Elemen pertama: indeks kolom berbasis 0.
Elemen kedua:
0
untuk atas,1
untuk bawah.Output adalah daftar satu atau dua pasangan seperti yang ditentukan di atas (prettified untuk menunjukkannya dengan lebih baik). Inning output dalam urutan terbalik.
sumber
Python 2 ,
135129126125123119 byteCobalah online!
-1 dengan terima kasih kepada @ovs
-4 terima kasih lagi kepada @ovs
sumber
if d else"11BT"[c<1::2]
untuk -3if d
Saya bisa melihat (seharusnya tidak melewatkan itu!) Tetapielse"11BT"[c<1::2]
tidak keluar lebih pendek untuk saya kecuali saya kehilangan sesuatu.if d
.if d
bisa Anda lakukanif b
, maka Anda tidak perlu menyimpanlen(b)
dalam variabel.d
untuk[d<c]
. Tidak bisa melihat jalan keluarnya. Ada ide?Python 2 , 65 byte
Cobalah online!
Mencetak dua baris, pertama kemungkinan inning bawah kemudian yang atas, sebagai daftar tunggal. Jika salah satu tidak memungkinkan, daftar itu kosong.
sumber
Bersih ,
8475 byteCobalah online!
Menentukan fungsi
@ :: [Int] [Int] -> (Int, Int)
dan beberapa pembantu.Memberikan output dalam bentuk di
(Top, Bottom)
mana nol menandakan kemungkinan nol.sumber