J'étais dans le bus aujourd'hui et j'ai remarqué ce signe:
seated standing wheelchairs
max1 37 30 00
max2 36 26 01
max3 34 32 00
Le nombre de passagers assis, de passagers debout et de fauteuils roulants ne doit pas être supérieur à une rangée du tableau. (Voir le chat pour plus de détails.)
Aux fins de ce défi, nous généraliserons cette idée: étant donné une liste entière non négative d'une longueur strictement positive N (nombre de types de passagers) et une matrice entière non négative de dimensions strictement positives (N colonnes et une ligne par configuration , ou la transposition de ceci), retourne une liste d'indices / vérités-fausses / deux-valeurs-uniques indiquant quelles configurations les limites sont remplies.
Par exemple avec la matrice ci-dessus:
30,25,1
→ [1]
(indexé 0) [2]
(indexé 1) ou [false,true,false]
(booléen) ou ["Abe","Bob","Abe"]
(deux valeurs uniques) etc.
Les cas de test suivants utilisent la matrice ci-dessus et le 0/1 pour faux / vrai:
[30,30,0]
→ [1,0,1]
[30,31,0]
→ [0,0,1]
[35,30,0]
→ [1,0,0]
[0,0,1]
→ [0,1,0]
[0,0,0]
→ [1,1,1]
[1,2,3]
→[0,0,0]
Les cas de test suivants utilisent la matrice suivante:
1 2 0 4
2 3 0 2
[1,2,1,2]
→ [0,0]
[1,3,0,1]
→ [0,1]
[1,2,0,3]
→ [1,0]
[1,2,0,1]
→[1,1]
[30,31,0]
être[1, 1, 1]
parce qu'il est couvert parmax3
?0
et toute valeur fausse à la place de1
?)[x,31,z]
exclutmax1
etmax2
parce qu'ils ne permettent pas 31 voyageurs debout.Réponses:
APL (Dyalog Unicode) ,
53 octetsEssayez-le en ligne!
la source
∧.≤
^_^
>,<
@.@
Haskell,
2220 octetsRetourne
False
si légal etTrue
sinon.Essayez-le en ligne!
Retourner Vrai / Faux comme valeurs de retour économise 2 octets (merci @ user202729!). Avec
True
pour légal c'estmap.(and.).zipWith(<=)
(22 octets). Essayez-le en ligne!la source
Octave , 15 octets
Essayez-le en ligne!
Selon le commentaire de Sundar, l'omission de la transposition permet d'économiser 2 octets.
la source
b
comme vecteur de colonne au lieu de vecteur de ligne (car il est simplement spécifié sous forme de liste), économisant 2 octets: Essayez-le en ligne!MATL , 3 octets
Essayez-le en ligne!
Prend la matrice d'entrée comme une transposition du format dans la question (comme autorisé par OP), avec une colonne par configuration. Sorties booléennes 0 et 1 pour faux et vrai.
la source
R ,
323026 octetsEssayez-le en ligne!
Accepte la matrice sous forme transposée as
x
, test config asy
. Renvoie un vecteur de booléens.-2 octets initiaux grâce à mnel, et encore -4 par JayCe.
la source
Gelée , 3 octets
Essayez-le en ligne!
0
= Vrai,1
= Faux.la source
<§
cela fonctionnerait<§
n'est pas exactement "vrai-faux" mais plutôt "faux-vrai", ce qui, malheureusement, n'est pas ce que le défi demande.≥
.Ohm v2 , 3 octets
Essayez-le en ligne!
Algorithme: vectorisé
>
(supérieur à),Σ
somme chacun,y
signe.la source
JavaScript (ES6), 38 octets
Prend l'entrée comme
(matrix)(vector)
. Renvoie un tableau booléen.Essayez-le en ligne!
la source
Haskell , 30 octets
Essayez-le en ligne!
la source
Retina 0.8.2 , 57 octets
Essayez-le en ligne! Link inclut des cas de test, mais la sortie est exécutée ensemble. Explication:
Convertissez en unaire.
Donnez à chaque ligne de la matrice sa propre copie de la liste.
Opérez séparément sur chaque ligne de la matrice.
Supprimez à plusieurs reprises le dernier numéro de la ligne et de la liste tandis que le dernier numéro de la ligne est au moins aussi grand que celui de la liste.
Il devrait alors y avoir un numéro dans la liste et le numéro dans la ligne devrait être au moins aussi grand que cela.
la source
Japt ,
65 octets-1 octets de @Shaggy
Essayez-le en ligne!
la source
VgY
->Vv
pour enregistrer un octet.Python 2 , 38 octets
Essayez-le en ligne!
la source
05AB1E , 5 octets
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
Malheureusement, 05AB1E v1 n'a pas de fonction intégrée à 1 caractère pour
≤
ou≥
, donc je diminue chaque valeur à la place avant de l'utiliser›
. 05AB1E v2 qui est en cours de développement aura ces fonctions intégrées.la source
Stax , 8 octets
Exécuter et déboguer
Explication:
la source
Brachylog , 14 octets
Essayez-le en ligne!
la source
Wolfram Language (Mathematica) , 18 octets
Renvoie une liste de deux valeurs uniques:
True
signifie faux,False
signifie vrai.Essayez-le en ligne!
la source