Definiujemy binarray jako tablicę spełniającą następujące właściwości:
- nie jest pusty
- pierwsza wartość to
1
- ostatnia wartość to
1
- Wszystkie inne wartości są albo
0
albo1
Na przykład tablica [ 1, 1, 0, 1 ]
jest prawidłową tablicą binarną .
Zadanie
Biorąc pod uwagę niepustą tablicę A nieujemnych liczb całkowitych i dodatnią liczbę całkowitą N , Twoim zadaniem jest znalezienie tablicy b B o długości N, która pozwala wygenerować A poprzez zsumowanie nieograniczonej liczby kopii B , przesuniętej o nieograniczoną liczbę pozycje.
Przykład
A = [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ]
N = 4
Dla tych danych wejściowych binarna tablica B = [ 1, 1, 0, 1 ]
byłaby prawidłową odpowiedzią, ponieważ możemy wykonać:
[ 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 ]
Zasady
- Dane wejściowe można przyjmować w dowolnym rozsądnym formacie.
- Wyjściem może być natywna tablica (np.
[1, 1, 0, 1]
) Lub ciąg binarny z separatorem lub bez (np."1,1,0,1"
Lub"1101"
) - Musisz wydrukować lub zwrócić tylko jeden ważny binarray . Alternatywnie możesz wydrukować lub zwrócić je wszystkie, jeśli istnieje kilka rozwiązań.
- Nie musisz obsługiwać danych wejściowych, które nie prowadzą do żadnego rozwiązania.
- Suma może zawierać ukryte zer, które nie pokrywają się z jakiejkolwiek kopii B . Drugie zero w powyższej sumie jest takim domniemanym zerem.
- Możesz założyć, że maksymalny rozmiar A wynosi 100, a maksymalny rozmiar B to 30.
- To jest golf golfowy, więc wygrywa najkrótsza odpowiedź w bajtach. Standardowe luki są zabronione.
Przypadki testowe
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 ]
, masz 30459, która jest podzielna zarówno przez 11 i 13 jeszcze tylko jednego [ 1, 1, 0, 1 ]
i [ 1, 0, 1, 1 ]
jest prawidłowym rozwiązaniem.
N
należy w uzasadniony sposób wspierać?