private bool _ALSXZsub(int sz) { if (ALSMan.ALSLst.Count < 2) { return(false); } var cmb = new Combination(ALSMan.ALSLst.Count, 2); int nxt = 99; while (cmb.Successor(nxt)) //Select two ALSs { UALS UA = ALSMan.ALSLst[cmb.Index[0]]; nxt = 0; if (!UA.singly || UA.Size == 1 || UA.Size > (sz - 2)) { continue; } UALS UB = ALSMan.ALSLst[cmb.Index[1]]; nxt = 1; if (!UB.singly || UB.Size == 1 || (UA.Size + UB.Size) != sz) { continue; } int RCC = ALSMan.Get_AlsAlsRcc(UA, UB); //Common numbers, House contact, Without overlap if (RCC == 0) { continue; } if (RCC.BitCount() == 1) //===== Singly Linked ===== { int EnoB = (UA.FreeB & UB.FreeB).DifSet(RCC); //Exclude candidate digit if (EnoB > 0 && _ALSXZ_SinglyLinked(UA, UB, RCC, EnoB)) { SolCode = 2; ALSXZ_SolResult(RCC, UA, UB); if (__SimpleAnalizerB__) { return(true); } if (!pAnMan.SnapSaveGP(true)) { return(true); } } } else if (RCC.BitCount() == 2) //===== Doubly Linked ===== { if (_ALSXZ_DoublyLinked(UA, UB, RCC)) { SolCode = 2; ALSXZ_SolResult(RCC, UA, UB); if (__SimpleAnalizerB__) { return(true); } if (!pAnMan.SnapSaveGP(true)) { return(true); } } } } return(false); }