Wir definieren ein Binarray als ein Array, das die folgenden Eigenschaften erfüllt:
- es ist nicht leer
- Der erste Wert ist a
1
- Der letzte Wert ist a
1
- Alle anderen Werte sind entweder
0
oder1
Zum Beispiel das Array [ 1, 1, 0, 1 ]
ein gültiges Binarray .
Die Aufgabe
Bei einem nicht leeren Array A mit nicht negativen Ganzzahlen und einer positiven Ganzzahl N müssen Sie ein Binarray B mit der Länge N finden , mit dem Sie A durch Summieren einer uneingeschränkten Anzahl von Kopien von B generieren können , die um eine uneingeschränkte Anzahl von verschoben sind Positionen.
Beispiel
A = [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ]
N = 4
Für diese Eingabe wäre das Binarray B = [ 1, 1, 0, 1 ]
eine gültige Antwort, da wir Folgendes tun können:
[ 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 ]
Regeln
- Die Eingabe kann in jedem vernünftigen Format erfolgen.
- Die Ausgabe kann entweder ein natives Array (z. B.
[1, 1, 0, 1]
) oder eine Binärzeichenfolge mit oder ohne Trennzeichen (z. B."1,1,0,1"
oder"1101"
) sein. - Sie müssen nur ein gültiges Binarray ausdrucken oder zurücksenden . Alternativ können Sie alle drucken oder zurückgeben , wenn mehrere Lösungen vorhanden sind.
- Sie müssen keine Eingaben unterstützen, die zu keiner Lösung führen.
- Die Summe kann implizite Nullen enthalten, die sich mit keiner Kopie von B überschneiden . Die zweite Null in der obigen Summe ist eine solche implizite Null.
- Sie können davon ausgehen, dass die maximale Größe von A 100 und die maximale Größe von B 30 beträgt.
- Das ist Code-Golf, also gewinnt die kürzeste Antwort in Bytes. Standardlücken sind verboten.
Testfälle
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 ]
bekommst du 30459, das sowohl durch 11 als auch durch 13 teilbar ist und doch nur eine von [ 1, 1, 0, 1 ]
und [ 1, 0, 1, 1 ]
eine gültige Antwort ist.
N
vernünftigerweise unterstützt werden sollte?