Étant donné une pyramide d'addition , déterminez si elle peut être résolue. Une pyramide d'addition se compose de couches , chacune ayant un nombre inférieur à celui en dessous. La couche est symbolisée par . est la couche de base et est la couche au sommet de . Le ème nombre de est noté . est le nombre le plus à gauche de , et est le nombre à droite de . Vous pouvez visualiser résidant au-dessus de et au milieu, d'où le nom "pyramide d'addition".
- , c'est-à-dire que chaque nombre dans la pyramide est un entier positif non nul.
- , c'est-à-dire que chaque nombre qui n'est pas sur la couche de base de la pyramide est la somme des deux nombres en dessous.
- Si a nombres, a nombres, donc est le nombre le plus à droite de . En termes plus simples, chaque couche a un numéro de moins que la couche en dessous.
Un puzzle pyramide d'addition est une pyramide d'addition dont certains nombres ont été supprimés (remplacés par ). Sa solution est une pyramide d'addition , où , c'est-à-dire que les nombres qui étaient initialement présents dans le puzzle sont restés inchangés. Un tel casse-tête peut avoir plus d'une solution.
Votre tâche consiste, compte tenu d'un casse-tête à pyramide supplémentaire, à déterminer s'il a exactement une solution.
Contribution
Vous pouvez obtenir des informations sous l'une des formes suivantes, mais soyez cohérent:
- Tableau de couches.
- Tableau de couches, en forme de pyramide utilisant une valeur entière non positive cohérente comme séparateur entre les éléments (utilisé une seule fois à chaque fois) ainsi qu'un remplissage gauche et droit. Le séparateur et le rembourrage doivent être identiques.
- Tableau de calques avec un remplissage droit ou gauche cohérent valide (vous devez être cohérent et ne pas mélanger le remplissage droit et gauche dans ce cas).
Veuillez noter qu'une valeur cohérente qui n'est pas un entier strictement positif doit être utilisée pour représenter un nombre manquant; cette valeur ne peut pas être utilisée comme remplissage. De plus, vous pouvez prendre les couches concaténées (vous pouvez toujours les séparer), et l'ordre peut être de la base vers le haut ou du haut vers la base.
Production
L'une des deux valeurs distinctes cohérentes, où l'une représente la présence d'une solution unique et l'autre l'absence d'une solution ou la présence de plusieurs solutions.
Règles
- Ne fais pas ces choses .
- Il s'agit de code-golf , donc la réponse la plus courte l'emporte! Cependant, ne laissez pas cela vous décourager de publier une solution simplement parce que votre langue est "trop verbeuse".
Cas de test
0
[[10], [0, 0], [0, 2, 0], [0, 0, 0, 1]] -> True
[[32], [0, 0], [0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] -> True
[[0], [1, 1]] -> True
[[1], [0, 0]] -> False
[[10], [5, 5], [2, 3, 2], [0, 0, 0, 0]] -> False
[[5], [0, 0], [0, 0, 0]] -> False
Exemples travaillés
Les cas de test sont travaillés ici.
Solution unique 1
Les étapes 5-6 sont similaires à 4.
Nous avons donc ici notre solution unique.
Solution unique 2
Étape 1: Il n'y a pas d'approche évidente ici, alors essayons d'utiliser les valeurs minimales possibles.
Étapes 2 à 5: il semble que les valeurs minimales aboutissent à une solution, c'est donc la seule solution et donc unique.
Astuce: Il y a un théorème sur les puzzles de pyramides d'addition liés à ce puzzle que vous pouvez prouver si vous réfléchissez suffisamment.
Solution unique 3
Il s'agit d'une solution évidemment unique.
Pas de solution 1
Pas de solution 2
Solution non unique
Deux solutions:
Puisqu'il y a au moins deux solutions, il n'y a pas de solution unique.