Kami mendefinisikan binarray sebagai array yang memenuhi properti berikut:
- ini tidak kosong
- nilai pertama adalah a
1 - nilai terakhir adalah a
1 - semua nilai lainnya adalah
0atau1
Misalnya, array [ 1, 1, 0, 1 ]adalah binarray yang valid .
Tugas
Mengingat non-kosong array yang Sebuah bilangan bulat non-negatif dan positif bilangan bulat N , tugas Anda adalah untuk menemukan binarray B panjang N yang memungkinkan untuk menghasilkan A dengan menjumlahkan jumlah tak terbatas salinan B , digeser oleh jumlah tak terbatas posisi.
Contoh
A = [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ]
N = 4
Untuk input ini, binarray B = [ 1, 1, 0, 1 ] akan menjadi jawaban yang valid karena kita dapat melakukan:
[ 1, 1, 0, 1 ]
+ [ 1, 1, 0, 1 ]
+ [ 1, 1, 0, 1 ]
+ [ 1, 1, 0, 1 ]
+ [ 1, 1, 0, 1 ]
+ [ 1, 1, 0, 1 ]
-----------------------------------------------
= [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ]
Aturan
- Masukan dapat diambil dalam format apa pun yang masuk akal.
- Output dapat berupa array asli (misalnya
[1, 1, 0, 1]) atau string biner dengan atau tanpa pemisah (misalnya"1,1,0,1"atau"1101") - Anda hanya perlu mencetak atau mengembalikan satu binarray yang valid . Atau, Anda dapat memilih untuk mencetak atau mengembalikan semuanya ketika ada beberapa solusi.
- Anda tidak diharuskan mendukung input yang tidak mengarah ke solusi apa pun.
- Jumlahnya mungkin termasuk nol implisit yang tidak tumpang tindih dengan salinan B . Nol kedua dalam jumlah di atas adalah nol yang tersirat.
- Anda dapat mengasumsikan bahwa ukuran maksimum A adalah 100 dan ukuran maksimum B adalah 30.
- Ini adalah kode-golf, jadi jawaban tersingkat dalam byte menang. Celah standar dilarang.
Uji kasus
Input : N = 1 / A = [ 1, 2, 3, 4, 5 ]
Output: [ 1 ]
Input : N = 2 / A = [ 1, 2, 100, 99 ]
Output: [ 1, 1 ]
Input : N = 3 / A = [ 1, 1, 1 ]
Output: [ 1, 1, 1 ]
Input : N = 3 / A = [ 1, 1, 3, 2, 2 ]
Output: [ 1, 1, 1 ]
Input : N = 3 / A = [ 1, 0, 2, 1, 1, 1, 0, 0, 1, 0, 1 ]
Output: [ 1, 0, 1 ]
Input : N = 4 / A = [ 1, 2, 2, 2, 1 ]
Output: [ 1, 1, 1, 1 ]
Input : N = 4 / A = [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ]
Output: [ 1, 1, 0, 1 ]
Input : N = 4 / A = [ 1, 1, 0, 2, 1, 0, 1 ]
Output: [ 1, 0, 0, 1 ] or [ 1, 1, 0, 1 ]
Input : N = 5 / A = [ 1, 3, 6, 9, 8, 6, 3, 4 ]
Output: [ 1, 1, 1, 0, 1 ]
Input : N = 8 / A = [ 2, 1, 0, 2, 3, 3, 1, 2, 1 ]
Output: [ 1, 0, 0, 1, 1, 1, 0, 1 ]
Input : N = 10 / A = [ 1, 2, 1, 2, 2, 1, 3, 3, 3, 2, 3, 0, 2, 1, 1, 0, 1 ]
Output: [ 1, 1, 0, 1, 0, 1, 1, 1, 0, 1 ]
Input : N = 13 / A = [ 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1 ]
Output: [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ]
Input : N = 5 / A = [ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ]
Output: [ 1, 1, 1, 1, 1 ]
Input : N = 6 / A = [ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ]
Output: [ 1, 0, 0, 0, 0, 1 ]
Input : N = 7 / A = [ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ]
Output: [ 1, 1, 0, 0, 0, 1, 1 ]
Input : N = 9 / A = [ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ]
Output: [ 1, 0, 1, 0, 1, 0, 1, 0, 1 ]
N=4, A = [ 1, 1, 2, 4, 1, 2, 2, 2, 1, 2, 2, 1, 2, 0, 1 ], Anda mendapatkan 30459 yang dapat dibagi oleh 11 dan 13 namun hanya satu [ 1, 1, 0, 1 ]dan [ 1, 0, 1, 1 ]jawaban yang valid.
Nyang seharusnya didukung?